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