本文实例为大家分享了C# SqlHelper应用技巧,供大家参考,具体内容如下
使用App.config配置文件封装连接字符串,方便重复使用
代码如下 | 复制代码 |
--->添加App.conifg配置文件
|
封装一个SQLHelper类方便使用
代码如下 | 复制代码 |
usingSystem.Configuration; usingSystem.Data;//DatSet..Table SqlDataAdapter usingSystem.Data.SqlClient;//SqlConnection Command DataReader namespaceCommon { publicclassSqlHelper { //连接字符串 //1、添加引用 2、导入命名空间 为了使用ConfigurationManager privatestaticstringconStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
//增删改查 //查找数据 ExecuteScalar()返回首行首列 ExecuteReader() DataTable
/// /// 返回DataTable /// ///所用的sql语句 ///可变,可以传参也可以不传参数 /// publicstaticDataTable ExecuteDataTable(stringsql,paramsSqlParameter[] param) { DataTable dt =newDataTable(); using(SqlConnection con =newSqlConnection(conStr)) { using(SqlDataAdapter adapter =newSqlDataAdapter(sql, con)) { //添加参数 adapter.SelectCommand.Parameters.AddRange(param); //1.打开链接,如果连接没有打开,则它给你打开;如果打开,就算了 //2.去执行sql语句,读取数据库 //3.sqlDataReader,把读取到的数据填充到内存表中 adapter.Fill(dt); } } returndt; }
/// /// 执行查询,返回首行首列 /// /// /// /// publicstaticobjectExecuteScalar(stringsql,paramsSqlParameter[] param) { objecto =null; using(SqlConnection con =newSqlConnection(conStr)) { using(SqlCommand cmd =newSqlCommand(sql, con)) { cmd.Parameters.AddRange(param); con.Open();
o = cmd.ExecuteScalar(); } } returno; }
/// /// 执行查询,返回SqlDataReader对象 /// /// /// /// publicstaticSqlDataReader ExecuteReader(stringsql,paramsSqlParameter[] param) { SqlDataReader reader =null; using(SqlConnection con =newSqlConnection(conStr)) { using(SqlCommand cmd =newSqlCommand(sql, con)) { cmd.Parameters.AddRange(param); con.Open();
reader = cmd.ExecuteReader(); } } returnreader; }
/// /// 执行增删改,返回受影响的行数 /// /// /// /// publicstaticintExecuteNonQuery(stringsql,paramsSqlParameter[] param) { intn = -1; using(SqlConnection con =newSqlConnection(conStr)) { using(SqlCommand cmd =newSqlCommand(sql, con)) { cmd.Parameters.AddRange(param); con.Open(); n = cmd.ExecuteNonQuery(); } } returnn; }
} } |
C#namespace: 是为了防止命名重复的 。
比如你在两个不同的命名空间中都可以有Student类。
此命名空间范围允许您组织代码并为您提供了创建全局唯一类型的方法。
C#中Sqlparamater的用法:http://www.jb51.net/article/101015.htm
下面这个是应用sqlHelper和ComboBox来展示 省市联动:
代码如下 | 复制代码 |
publicpartialclassForm1 : Form { publicForm1() { InitializeComponent(); }
privatevoidForm1_Load(objectsender, EventArgs e) { //在应用程序加载的时候 ,去数据库查找省的数据,给cboPro DataTable dt = SqlHelper.ExecuteDataTable("select * from promary"); //将返回的DataTable作为cboPro的数据源 //让cboPro显示proName这个字段的值,一般是显示给客户看的 cboPro.DisplayMember ="proName"; //让valueMemberID,绑定的是对应的值,绑定处理程序标识 给程序员看的。 cboPro.ValueMember ="proID"; cboPro.DataSource = dt; }
privatevoidcboPro_SelectedIndexChanged(objectsender, EventArgs e) { //之前的写法 // MessageBox.Show(cboPro.Text);//获得在cbo中选择文本 //MessageBox.Show(cboPro.SelectedValue.ToString());//获得关联的数据
//string sql = "select * from city where proID="+cboPro.SelectedValue.ToString(); //带参数的sql语句 stringsql ="select * from city where proID=@proID"; //准备一个sql参数 SqlParameter p =newSqlParameter("@proID", cboPro.SelectedValue.ToString()); //设置cboCity要显示的数据 cboCity.DisplayMember ="cityName"; //根据sql语句查询到的数据集 cboCity.DataSource = SqlHelper.ExecuteDataTable(sql, p); } } |