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);