零基础转型C#软件工程师-71通用数据的三种查询类

零基础转型C#软件工程师-71通用数据的三种查询类一、新建一个单一的查询方法,代码如下:#region 单一查询方法 /// <summary> /

大家好,欢迎来到IT知识分享网。

视频加载中…

一、新建一个单一的查询方法,代码如下:

#region 单一查询方法 /// <summary> /// 查询单一方法 /// </summary> public static object ExecuteScalar(string sql) { //创建连接对象 SqlConnection conn = new SqlConnection(connString); //创建Command对象,并把连接和SQL语句放到SqlCommand参数中 SqlCommand cmd = new SqlCommand(sql, conn); try { //打开数据库连接 conn.Open(); //用ExecuteScalar方法执行查询,注意返回的是object类型 return cmd.ExecuteScalar(); } //异常捕获信息 catch (Exception ex) { //在这个地方写入日志... string errorMsg = #34;{DateTime.Now} :执行public int ExecuteNonQuery(string sql)方法发送异常:{ex.Message}"; //抛出异常到调用的方法中 throw new Exception("执行 public object ExecuteScalar(string sql)方法发送异常:" + ex.Message); } //以上不管是否发生异常,都会执行的代码 finally { conn.Close(); } } #endregion

二、使用SqlDataReader返回一个只读结果集的查询方法,代码如下:

 #region SqlDataReader返回一个只读结果集的查询 public static SqlDataReader ExecuteReader(string sql) { // 新建数据库连接 SqlConnection conn = new SqlConnection(connString); //创建Command对象并赋参数 SqlCommand cmd = new SqlCommand(sql, conn); try { //打开连接 conn.Open(); //ExecuteReader对象返回的是SqlDataReader这个类型, //可以把new比喻是自己创建的新东西,比方说自己做饭, //ExecuteReader对象就是我们花钱买东西,比方说去饭店吃饭,所以不用new return cmd.ExecuteReader(CommandBehavior.CloseConnection);//必须添加这个枚举,要不然连接不会关 } catch (Exception ex) { throw new Exception("执行public static SqlDataReader ExecuteReader(string sql)方法发送异常" + ex.Message); } } #endregion

三、使用DataSet查询,返回一张数据集的查询,代码如下:

 #region DataSet查询, /// <summary> /// 返回包括一张数据集的查询 /// </summary> /// <param name="sql">查询语句</param> /// <param name="tableName"></param> /// <returns></returns> /// <exception cref="Exception"></exception> public static DataSet GetDataSet(string sql, string tableName = null) { SqlConnection conn = new SqlConnection(connString); SqlCommand cmd = new SqlCommand(sql, conn); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); try { conn.Open(); if (tableName == null) { da.Fill(ds); } else { da.Fill(ds, tableName); } return ds; } catch (Exception ex) { throw new Exception("执行 public static DataSet GetDataSet(string sql, string tableName = null)方法发送异常" + ex.Message); } finally { conn.Close(); } } #endregion

四、新建一个窗体,窗体外观如下:

零基础转型C#软件工程师-71通用数据的三种查询类

五、制作3个按钮,Test属性分别是:查询总行数、ExecuteReader 查询方法、DataSet 查询方法 ,三个按钮的代码如下:

 #region 单一结果查询 private void button4_Click(object sender, EventArgs e) { string sql = " select COUNT(*) from TEST "; object result = 0; try { result = (int)SQLHelperBase.ExecuteScalar(sql); } catch (Exception ex) { MessageBox.Show(ex.Message); } this.tb_Select.Text = result.ToString(); } #endregion #region SqlDataReader方法查询数据集 private void button5_Click(object sender, EventArgs e) { //数据想和DataGridView绑定,必须要有集合,所以新建集合 List<DataTable> list = new List<DataTable>(); //建立查询数据表(后期也可以在select后面加条件) string sql = "select * from TEST"; //调用ExecuteReader方法 SqlDataReader reader =SQLHelperBase.ExecuteReader(sql); //使用循环读取 while(reader.Read()) { //把数据库添加到集合中 list.Add(new DataTable { Data1 = #34;{reader[0]}", Data2 = #34;{reader[1]}", Data3 = #34;{reader[2]}", Data4 = #34;{reader[3]}", Data5 = #34;{reader[4]}" }) ; } //报表展示和List绑定 this.dgv_List.DataSource = list; //关闭Reader对象的时候,会自动的关闭对应的连接 reader.Close(); } #endregion #region DataSet查询一个数据 private void button6_Click(object sender, EventArgs e) { //数据想和DataGridView绑定,必须要有集合,所以新建集合 List<DataTable> list = new List<DataTable>(); string sql = "select * from TEST"; DataSet ds =SQLHelperBase.GetDataSet(sql); foreach (DataRow row in ds.Tables[0].Rows) { list.Add(new DataTable { Data1 = #34;{row[0]}", Data2 = #34;{row[1]}", Data3 = #34;{row[2]}", Data4 = #34;{row[3]}", Data5 = #34;{row[4]}" }); } this.dgv_List2.DataSource = list; } #endregion

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/54658.html

(0)
上一篇 2024-07-27 17:26
下一篇 2024-07-31 21:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信