关于通用SQLHelper类的编写及细节

1.使用配置文件获取连接字符串

在UI层的根目录文件夹下添加XML格式的配置文件,文件名称不要修改

在其中定义一个结点

  <connectionStrings>
    <add name="ConnString" connectionString="Server= ;DataBase= ;Uid= ;Pwd= "/>
  </connectionStrings>

然后再DAL层(数据交互层)添加System.Configration引用

将连接字符串改为(建议设置为readonly)

string connString = ConfigurationManager.ConnectionStrings["ConnString"].ToString();

//需要添加 using System.Configuration;

DataSet相关(优势:减少客户端与服务器之间的交互 )

      使用DataAdpater

使用DataSet抓取数据

            SqlCommand cmd = new SqlCommand(sql, conn);
            SqlDataAdapter da = new SqlDataAdapter(cmd);//创建数据适配对象

            DataSet ds = new DataSet();

            conn.Open();
            da.Fill(ds);
            conn.Close();

使用DataSet中的数据--绑定到下拉框

            DataTable dt = ds.Tables[0];//默认选中Table[0]
            cmbCreators.DataSource = dt;//设置数据源

            cmbCreators.ValueMember = "GUid";//设置值对象
            cmbCreators.DisplayMember = "GCreater";//设置显示对象

效果

使用DataSet中的数据--绑定到datagridview

            DataTable dt = ds.Tables[0];
            dataview.DataSource = dt;

效果

另附SQL的模糊查询

select * from Goods where GName like '需要查询的模糊关键字%'

带参数的SQL语句的执行

      重载的带参数Updata方法

        public static int Update(string sql,SqlParameter[] parameter)
        {
            SqlConnection conn = new SqlConnection(connString);
            SqlCommand cmd = new SqlCommand(sql, conn);
            try
            {
                conn.Open();
                cmd.Parameters.AddRange(parameter);//添加参数数组
                return cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {

                throw ex;
            }
            finally
            {
                conn.Close();
            }

        }

      带参数的SQL语句(可以更好的防止注入攻击)

            //编写带参数的SQL语句
            StringBuilder sqlBuilder = new StringBuilder();
            sqlBuilder.Append("insert into Goods(GName,GCost,GDate,GCreater,GLocation)");
            sqlBuilder.Append("values(@GName,@GCost,@GDate,@GCreater,@GLocation);select @@IDENTITY");

            //定义参数数组
            SqlParameter[] param = new SqlParameter[]
                {
                    new SqlParameter("@GName","Surface Go 8+128"),
                     new SqlParameter("@GCost",4999),
                      new SqlParameter("@GDate","2020-12-20"),
                       new SqlParameter("@GCreater","MS .Inc"),
                        new SqlParameter("@GLocation",2),
                };
            Update(sqlBuilder.ToString(), param);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值