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

 public static class SqlHelper
{
public static readonly string strConn = ConfigurationManager.ConnectionStrings["strConn"].ConnectionString; public static int ExecuteNonQuery(string cmdText, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
return ExecuteNonQuery(conn, cmdText, parameters);
}
}
public static int ExecuteNonQuery(SqlConnection conn, string cmdText, params SqlParameter[] parameters)
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = cmdText;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteNonQuery();
}
} public static object ExecuteScalar(string cmdText, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
return ExecuteScalar(conn, cmdText, parameters);
}
}
public static object ExecuteScalar(SqlConnection conn, string cmdText, params SqlParameter[] parameters)
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = cmdText;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteScalar();
}
} public static DataTable ExecuteDataTable(string cmdText, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
return ExecuteDataTable(conn, cmdText, parameters);
}
}
public static DataTable ExecuteDataTable(SqlConnection conn, string cmdText, params SqlParameter[] parameters)
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = cmdText;
cmd.Parameters.AddRange(parameters);
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
adapter.Fill(dt);
return dt;
}
}
} /// <summary>
/// 存数据时防止为空
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static object ToDbValue(this object value)
{
return value == null ? DBNull.Value : value;
} /// <summary>
/// 取数据时防止为空
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static object FromDbValue(this object value)
{
return value == DBNull.Value ? null : value;
}
}

最新文章

  1. WebService 概念和工作原理(一)
  2. Highchart.js
  3. Replication
  4. 简单的C#线程开发实例(隔一秒改变一下Label的Text)
  5. &lt;一&gt;初探js特效魅力之选项卡05
  6. Sysbench - 一种系统性能benchmark
  7. vuex使用心得分享(填坑)
  8. Linux显示所有运行中的进程
  9. java 删除整数元素集合中的元素
  10. AGC 007D.Shik and Game(DP)
  11. Django和SQLAlchemy,哪个Python ORM更好?
  12. 在Java应用中通过SparkLauncher启动Spark任务
  13. Java1的内容(学期总结)
  14. python scrapy 把cookie并转化为字典的形式
  15. java运行时异常与一般异常有何异同?
  16. django的mysql设置和mysql服务器闲置时间设置
  17. ubuntu 安装 openssh-server,xinetd,vmware tools
  18. js中push和join方法使用介绍
  19. TCP关闭连接(为什么会能Time_wait,Close_wait?)
  20. laravel之引入图片上传类

热门文章

  1. WSGI and Paste学习笔记
  2. JSTL标签库的基本教程之核心标签库(二)
  3. 巧用这19条MySQL优化,效率至少提高3倍
  4. 吴恩达机器学习笔记38-决策下一步做什么(Deciding What to Do Next Revisited)
  5. 第33节:Java面向对象中的异常
  6. Python学习笔记【第七篇】:文件及文件夹操作
  7. 对称加密AES
  8. 音频处理库—librosa的安装与使用
  9. 线性整流函数(ReLU)
  10. Spring Boot 返回 XML 数据,一分钟搞定!