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
分类:
0x02 服务端开发
Buy me a cup of coffee ☕.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?