前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.Net ADO拼接带参数的SQL语句

.Net ADO拼接带参数的SQL语句

作者头像
追逐时光者
发布2022-02-14 21:06:40
1.1K0
发布2022-02-14 21:06:40
举报
文章被收录于专栏:编程进阶实战编程进阶实战

首先是在DAL数据访问层中的代码:

代码语言:javascript
复制

//数据更新的方法
public static int shuxing_update(s_passnature model)
        {
 string sql = "update s_passnature set pass_name=@pass_name,pass_content=@pass_content,pass_shuxing=@pass_shuxing,pass_shiledaddress=@pass_shiledaddress,pass_cost=@pass_cost,pass_company=@pass_company,is_start=@is_start,remark=@remark,operatorType=@operatorType where pass_id=@pass_id";
            //sqlparameter对象添加
            SqlParameter[] parameter = {
                new SqlParameter("@pass_name",SqlDbType.VarChar,200),
                new SqlParameter("@pass_content",SqlDbType.VarChar,5000),
                new SqlParameter("@pass_shuxing",SqlDbType.VarChar,5000),
                new SqlParameter("@pass_shiledaddress",SqlDbType.VarChar,5000),
                new SqlParameter("@pass_cost",SqlDbType.Decimal),
                new SqlParameter("@pass_company",SqlDbType.VarChar,100),
                new SqlParameter("@is_start",SqlDbType.Int,4),
                new SqlParameter("@remark",SqlDbType.VarChar,5000),
                new SqlParameter("@operatorType",SqlDbType.VarChar,50),
                new SqlParameter("@pass_id",SqlDbType.Int,4)
            };
            //对象赋值
            parameter[0].Value = model.pass_name;
            parameter[1].Value = model.pass_content;
            parameter[2].Value = model.pass_shuxing;
            parameter[3].Value = model.shiledaddress;
            parameter[4].Value = model.pass_cost;
            parameter[5].Value = model.pass_company;
            parameter[6].Value = model.is_start;
            parameter[7].Value = model.remark;
            parameter[8].Value = model.operatorType;
            parameter[9].Value = model.pass_id;
            return Common.DbHelperSQL.ExecuteSql(sql, parameter);
        }
dbhelper中的方法:
 public static int ExecuteSql(string SQLString, params SqlParameter[] cmdParms)
        {
            using (SqlConnection conn = new SqlConnection(DbHelperSQL.connectionString))
            {
                using (SqlCommand cmd = new SqlCommand())
                {
                    try
                    {
                        DbHelperSQL. PrepareCommand(cmd,connection,(SqlTransaction)null,SQLString,cmdParms);
                        int num = cmd.ExecuteNonQuery();
                    //每次执行完以后必须的释放清理资源,否则或导致程序堵塞
                        cmd.Parameters.Clear();
                        return num;
                    }
                    catch (SqlException ex)
                    {
                        throw new Exception(ex.Message);
                    }
                    finally
                    {
                        cmd.Dispose();
                        conn.Close();
                    }
                }
            }
        }

//数据验证带参数的语句都需要调用此方法进行验证
  private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, string cmdText, SqlParameter[] cmdParms)
        {
            if (conn.State != ConnectionState.Open)
                conn.Open();
            cmd.Connection = conn;
            cmd.CommandText = cmdText;
            if (trans != null)
                cmd.Transaction = trans;
            cmd.CommandType = CommandType.Text;//cmdType;
            if (cmdParms != null)
            {
                foreach (SqlParameter parameter in cmdParms)
                {
                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                        (parameter.Value == null))
                    {
                        parameter.Value = DBNull.Value;
                    }
                    cmd.Parameters.Add(parameter);
                }
            }
        }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-02-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档