SqlHelper模板

在实际开发中,我们不会直接使用拼写SQL语句的方法进行数据库操作,而是使用参数化的方法进行数据库操作,这样做的好处很多,不仅提高了程序的健壮性,同时也避免的SQL注入的问题。在这里,笔者为初学者提供一个SQLHelper模板,希望对新手有所启发。

复制代码
 1 public static class SqlHelper
 2 {
 3     public static readonly string strConn = ConfigurationManager.ConnectionStrings["strConn"].ConnectionString;
 4 
 5     public static int ExecuteNonQuery(string cmdText, params SqlParameter[] parameters)
 6     {
 7         using (SqlConnection conn = new SqlConnection(strConn))
 8         {
 9             conn.Open();
10             return ExecuteNonQuery(conn, cmdText, parameters);
11         }
12     }
13     public static int ExecuteNonQuery(SqlConnection conn, string cmdText, params SqlParameter[] parameters)
14     {
15         using (SqlCommand cmd = conn.CreateCommand())
16         {
17             cmd.CommandText = cmdText;
18             cmd.Parameters.AddRange(parameters);
19             return cmd.ExecuteNonQuery();
20         }
21     }
22 
23     public static object ExecuteScalar(string cmdText, params SqlParameter[] parameters)
24     {
25         using (SqlConnection conn = new SqlConnection(strConn))
26         {
27             conn.Open();
28             return ExecuteScalar(conn, cmdText, parameters);
29         }
30     }
31     public static object ExecuteScalar(SqlConnection conn, string cmdText, params SqlParameter[] parameters)
32     {
33         using (SqlCommand cmd = conn.CreateCommand())
34         {
35             cmd.CommandText = cmdText;
36             cmd.Parameters.AddRange(parameters);
37             return cmd.ExecuteScalar();
38         }
39     }
40 
41     public static DataTable ExecuteDataTable(string cmdText, params SqlParameter[] parameters)
42     {
43         using (SqlConnection conn = new SqlConnection(strConn))
44         {
45             conn.Open();
46             return ExecuteDataTable(conn, cmdText, parameters);
47         }
48     }
49     public static DataTable ExecuteDataTable(SqlConnection conn, string cmdText, params SqlParameter[] parameters)
50     {
51         using (SqlCommand cmd = conn.CreateCommand())
52         {
53             cmd.CommandText = cmdText;
54             cmd.Parameters.AddRange(parameters);
55             using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
56             {
57                 DataTable dt = new DataTable();
58                 adapter.Fill(dt);
59                 return dt;
60             }
61         }
62     }
63 
64     /// <summary>
65     /// 存数据时防止为空
66     /// </summary>
67     /// <param name="value"></param>
68     /// <returns></returns>
69     public static object ToDbValue(this object value)
70     {
71         return value == null ? DBNull.Value : value;
72     }
73 
74     /// <summary>
75     /// 取数据时防止为空
76     /// </summary>
77     /// <param name="value"></param>
78     /// <returns></returns>
79     public static object FromDbValue(this object value)
80     {
81         return value == DBNull.Value ? null : value;
82     }
83 }
复制代码

 

作者:hippiezhou

出处:https://www.cnblogs.com/hippieZhou/p/4486171.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

Find Anyway

posted @   hippieZhou  阅读(766)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题