關於通用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);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章