在实际开发中,我们不会直接使用拼写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;}}

转载于:https://www.cnblogs.com/hippieZhou/p/4486171.html

SqlHelper模板相关推荐

  1. Flask HTML模板引擎详解

    模板引擎说明: 模板文件就是按照一定的规则书写的展示效果的HTML文件模板引擎就是负责按照指定规则进行替换的工具模板引擎选择jinja2. 一.渲染模板的方法 1.将渲染的模板进行返回 1 rende ...

  2. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第51讲:PHP中smarty模板技术介绍

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第51讲:PHP中smarty模板技术介绍 smarty模板技术PHP程序设计中必须掌握的知识,本文结合贵阳网站建设中的案例介绍了基于smarty技术的员工列 ...

  3. VS Code 安装插件、自定义模板、自定义配置参数、自定义主题、配置参数说明、常用的扩展插件

    1. 下载和官网教程 下载地址:https://code.visualstudio.com/ 官方教程:https://code.visualstudio.com/docs 2. 安装插件 安装扩展插 ...

  4. 一步一步写自己的SqlHelper类库

    前言: 一开始不懂SqlHelper是什么,以为是新东西.第一遍大量的查资料,在csdn上找到很多人写好的SqlHelper类,发现每个人写的很像,但又都不一样,找了一个能用的上的,敲了一遍别人的代码 ...

  5. SpringBoot (三) :SpringBoot使用Freemarker模板引擎渲染web视图

    什么是Freemarker FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页.电子邮件.配置文件.源代码等)的通用工具. 它不是面向最终用户的,而 ...

  6. SpringBoot-web开发(三): 模板引擎Thymeleaf

    [SpringBoot-web系列]前文: SpringBoot-web开发(一): 静态资源的导入(源码分析) SpringBoot-web开发(二): 页面和图标定制(源码分析) 目录 1. 引入 ...

  7. 二分查找模板全面总结

    二分查找 二分法的引入 情形1 1.X的平方根 2.搜索旋转排序数组 情形2 1.第一个错误的版本 2.寻找峰值 3.寻找旋转排序数组中的最小值 情形3 在排序数组中查找第一个和最后一个位置 当遇到查 ...

  8. Django 模板HTML转义和CSRF4.3

    Django对字符串进行自动HTML转义,如在模板中输出如下值: 视图代码: def index(request):return render(request, 'temtest/index2.htm ...

  9. Django 模板继承4.2

    模板继承 模板继承可以减少页面内容的重复定义,实现页面内容的重用 典型应用:网站的头部.尾部是一样的,这些内容可以定义在父模板中,子模板不需要重复定义 block标签:在父模板中预留区域,在子模板中填 ...

最新文章

  1. 海龟交易代码java_海龟交易算法,实现量化交易(1)数据获取
  2. 24-移动端app数据爬取
  3. vim 删除,复制和粘贴
  4. java xssfworkbook_java - poi(XSSFWorkbook)读取excel(.xlsx)文件
  5. 远程桌面登陆不上的解决思路
  6. latex 常用学习/模板/公式输入网站合集
  7. 2022甘肃省安全员C证特种作业证考试题库及模拟考试
  8. 2021年谷歌地球专业版使用方法,解决Google Earth无法连接服务器问题。
  9. K2+Padavan拿下校园网锐捷认证
  10. 关于物联网模组fota远程升级的说明
  11. 对PX4参数THR_MDL_FAC的理解
  12. 使用Pytorch搭建U-Net网络并基于DRIVE数据集训练(语义分割)学习笔记
  13. Mac安装软件提示 已损坏【已解决】
  14. 计算机做word的表格,word表格制作,教您word如何制作表格
  15. 网页、网站和HTML
  16. 2019上半年阿里,腾讯,百度,美团,头条等技术面试题目,以及答案,专家出题人分析汇总...
  17. 2.4g语音遥控器小结
  18. 2020春招补录全过程
  19. 【0】uC/OS-III应用开发————uC/OS-III的几个重要特性
  20. 触摸屏linux系统时间,关于Linux触摸屏驱动

热门文章

  1. python运行原理_Python线程池及其原理和使用(超级详细)
  2. 在linux下dns绑定域名,在Linux系统中,使用Bind搭建DNS域名解析服务
  3. 汇编写java模块_java – maven汇编插件moduleset源指令不包括任何文件,不符合附带的模块...
  4. NewCode----数串
  5. 【C++grammar】文件I/O流的基本用法
  6. java优秀算法河内之塔_河内塔的Java程序
  7. 字符串 charat_Java | String.charAt(index)| 从字符串中按索引获取字符
  8. python免杀技术---shellcode的加载与执行
  9. 横向全屏滑动插件_【案例】JQuery横向手风琴图片轮播切换代码
  10. mfc在运行的时候为什么没有实例化_为什么不建议把数据库部署在Docker容器内?...