封装sqlhelper

Posted 锦大大的博客呀!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了封装sqlhelper相关的知识,希望对你有一定的参考价值。

控件信息展示:

 

  1 //定义调用数据库类文件
  2 
  3 namespace SqlHelper
  4 {
  5   public class TblClass
  6 {
  7 public int classId { get; set; }
  8 public string class1 { get; set; }
  9 public string classname { get; set; }
 10 }
 11 }
 12 
 13 //主文件
 14 
 15 using System;
 16 using System.Collections.Generic;
 17 using System.ComponentModel;
 18 using System.Data;
 19 using System.Drawing;
 20 using System.Linq;
 21 using System.Text;
 22 using System.Windows.Forms;
 23 using System.Data.SqlClient;
 24 
 25 namespace SqlHelper
 26 {
 27   public partial class Form1 : Form
 28 {
 29 public Form1()
 30 {
 31   InitializeComponent();
 32 }
 33 //定义一个连接字符串
 34 //readonly修饰的变量,只能在初始化的时候赋值,以及在构造函数中赋值
 35 //其他地方只能读取不能设置值
 36 private static readonly string constr =@"database=ItcastCater;server=LAPTOP-2FGC7ARC\\Wangjin;user=sa;pwd=sa";
 37 //1. 执行增(insert)、删(delect)、改(update)的方法
 38 //ExecteNonQuery()
 39 public static int ExecteNonQuery(string sql, params SqlParameter[] pms)
 40 {
 41    using (SqlConnection conn = new SqlConnection(constr))
 42    {
 43       using (SqlCommand comm = new SqlCommand(sql, conn))
 44    {
 45    if (pms != null)
 46    {
 47       comm.Parameters.AddRange(pms);
 48    }
 49       conn.Open();
 50       return comm.ExecuteNonQuery();
 51    }
 52   }
 53 }
 54 //返回单个值的方法封装 ExecuteScalar
 55 public static object ExecuteScalar(string sql, params SqlParameter[] pms)
 56 {
 57 using (SqlConnection conn = new SqlConnection(constr))
 58 {
 59 using (SqlCommand comm = new SqlCommand(sql, conn))
 60 {
 61 if (pms != null)
 62 {
 63 comm.Parameters.AddRange(pms);
 64 }
 65 conn.Open();
 66 return comm.ExecuteScalar();
 67 }
 68 }
 69 }
 70 //返回SqlDataReader类型的多行多列数据 因为reader使用的时候必须保持连接池打开,所以方法和以上不一样
 71 public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] pms)
 72 {
 73 SqlConnection conn = new SqlConnection(constr);
 74 
 75 using (SqlCommand comm = new SqlCommand(sql, conn))
 76 {
 77 if (pms != null)
 78 {
 79 comm.Parameters.AddRange(pms);
 80 }
 81 try
 82 {
 83 conn.Open();
 84 //System.Data.CommandBehavior.CloseConnection表示使用完毕以后在关闭reader的同时
 85 //内部会将关联的connection对象页关闭掉
 86 return comm.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
 87 }
 88 catch
 89 {
 90 //关闭连接
 91 conn.Close();
 92 conn.Dispose();
 93 //向上抛异常,表示需要获取的数据出现异常,并且提示出错信息
 94 throw;
 95 }
 96 }
 97 }
 98 private void button1_Click(object sender, EventArgs e)
 99 {
100 string sql = "select count(*) from classtable where classId=@uid and class=@pwd";
101 SqlParameter[] pms = new SqlParameter[]{
102 new SqlParameter("@uid",SqlDbType.Int){Value=textBox1.Text.Trim()},
103 new SqlParameter("@pwd",SqlDbType.VarChar,50){Value=textBox2.Text}
104 };
105 int r=(int) SqlHelper.Form1.ExecuteScalar(sql, pms);
106 if (r > 0)
107 {
108 MessageBox.Show("登陆成功");
109 }
110 else
111 {
112 MessageBox.Show("登陆失败");
113 }
114 }
115 //使用ExecuteReader读取数据
116 private void button3_Click(object sender, EventArgs e)
117 {
118 List<TblClass> list=new List<TblClass>();
119 string sql = "select * from classtable";
120 using (SqlDataReader reader = SqlHelper.Form1.ExecuteReader(sql))
121 {
122 if (reader.HasRows)
123 {
124 while (reader.Read())
125 {
126 TblClass model = new TblClass();
127 model.classId = reader.GetInt32(0);
128 model.class1 = reader.GetString(1);
129 model.classname = reader.IsDBNull(2) ? null : reader.GetString(2);
130 list.Add(model);
131 }
132 }
133 MessageBox.Show(list.Count.ToString());
134 }
135 }
136 }
137 }

 

以上是关于封装sqlhelper的主要内容,如果未能解决你的问题,请参考以下文章

封装SQLHelper

封装sqlhelper

关于SqlHelper的详解

SqlHelper

数据库2_sqlHelper

VSCode自定义代码片段14——Vue的axios网络请求封装