1 namespace Login
2 {
3 class SqlHelper
4 { //连接数据库的字符串
5 //static string dataConnection = "server=***-PC;database=HeiMa;uid=sa;pwd=********";
6 //使用配置文件连接数据库的方法
7 //1.WinForm项目,请添加对“System.Configuration”的引用
8 //2.对配置文件connectionStrings节进行读取
9 static string dataConnection = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
10
11 #region 返回一张执行查询的表+static DataTable ExecuteDataTable(string sql, params SqlParameter[] param)
12 /// <summary>
13 /// 返回一张执行查询的表
14 /// </summary>
15 /// <param name="sql">执行的数据库查询语句</param>
16 /// <param name="param">添加入查询语句的参数(参数化查询)</param>
17 /// <returns>返回执行的一张结果集的表</returns>
18 public static DataTable ExecuteDataTable(string sql, params SqlParameter[] param)
19 { //创建一个临时数据集,存在内存中
20 DataSet ds = new DataSet();
21
22 //创建一个适配器并连接数据库通道
23 SqlDataAdapter sda = new SqlDataAdapter(sql, dataConnection);
24
25 //给适配器对象的查询命令添加参数
26 sda.SelectCommand.Parameters.AddRange(param);
27
28 //捕获异常,为的是不知道返回是否有数值
29 try
30 {
31 sda.Fill(ds); //如果有返回数值,则填充
32 DataTable dt = ds.Tables[0];//获得第一张表
33 return dt;
34 }
35 catch
36 {
37 return null;//没有表时,返回空
38 }
39
40 }
41 #endregion
42 #region 返回受影响的行数+static int ExecuteNonQuery(string sql, params SqlParameter[] param)
43 /// <summary>
44 /// 返回受影响的行数
45 /// </summary>
46 /// <param name="sql">执行数据库的查询语句</param>
47 /// <param name="param">传递参数(参数化查询)</param>
48 /// <returns>返回受影响的行数</returns>
49 public static int ExecuteNonQuery(string sql, params SqlParameter[] param)
50 {
51 //创建连接数据库的通道
52 using (SqlConnection conns = new SqlConnection(dataConnection))
53 { //创建执行命令对象,并连接数据库通道
54 using (SqlCommand cmd = new SqlCommand(sql, conns))
55 { //将参数添加到命令对象中
56 cmd.Parameters.AddRange(param);
57 //打开数据库
58 conns.Open();
59 //返回受影响的行数
60 return cmd.ExecuteNonQuery();
61
62 }
63 }
64
65 }
66
67 #endregion
68
69 #region 返回查询结果的第一行第一列的值+static object ExecuteScalar(string sql, params SqlParameter[] param)
70 /// <summary>
71 /// 返回查询结果的第一行第一列的值
72 /// </summary>
73 /// <param name="sql">传入数据库查询语句</param>
74 /// <param name="param">传入数据库查询需要的查询参数</param>
75 /// <returns>返回查询结果的第一行第一列的</returns>
76 public static object ExecuteScalar(string sql, params SqlParameter[] param)
77 {
78 using (SqlConnection conn = new SqlConnection(dataConnection))
79 {
80 using (SqlCommand cmd = new SqlCommand(sql, conn))
81 { //传入参数
82 cmd.Parameters.AddRange(param);
83 conn.Open();
84 return cmd.ExecuteScalar();
85 }
86 }
87
88 }
89 #endregion
90
91 }
92 }