1. using System.Configuration;
  2. using System.Data.SqlClient;
  3. using System.Data;
  4.  
  5. namespace ExamDAL
  6. {
  7. class SqHelper
  8. {
  9. #region 属性区
  10.  
  11. // 连接字符串
  12. private static string strConn;
  13.  
  14. public static string StrConn
  15. {
  16. get
  17. {
  18. return ConfigurationManager.ConnectionStrings["Exam"].ConnectionString;
  19. }
  20. }
  21.  
  22. #endregion
  23.  
  24. #region 方法区
  25.  
  26. #region 获取受影响的行数
  27.  
  28. /// 执行非查询存储过程和SQL语句
  29. /// 增、删、改
  30. /// </summary>
  31. /// <param name="strSQL">要执行的SQL语句</param>
  32. /// <param name="cmdType">Command类型</param>
  33. /// <param name="paras">参数列表,没有参数填入null</param>
  34. /// <returns>返回影响行数</returns>
  35. public static int ExcuteSQL(string strSQL, CommandType cmdType, params SqlParameter[] paras)
  36. {
  37. int count = ;
  38. using (SqlConnection conn = new SqlConnection(StrConn))
  39. {
  40. SqlCommand cmd = new SqlCommand(strSQL, conn);
  41. cmd.CommandType = cmdType;
  42. if (paras != null)
  43. {
  44. cmd.Parameters.AddRange(paras);
  45. }
  46. conn.Open();
  47. count = cmd.ExecuteNonQuery();
  48. conn.Close();
  49. }
  50. return count;
  51.  
  52. }
  53.  
  54. /// <summary>
  55. /// 执行没有参数的SQL的语句
  56. /// </summary>
  57. /// <param name="strSQL">执行SQL</param>
  58. /// <returns>受影响的行数</returns>
  59. public static int ExcuteSQL(string strSQL)
  60. {
  61. return ExcuteSQL(strSQL, null);
  62. }
  63.  
  64. /// <summary>
  65. /// 执行有参数的SQL的语句
  66. /// </summary>
  67. /// <param name="strSQL">执行SQL</param>
  68. /// <param name="paras">参数</param>
  69. /// <returns>受影响的行数</returns>
  70. public static int ExcuteSQL(string strSQL, SqlParameter[] paras)
  71. {
  72. return ExcuteSQL(strSQL, CommandType.Text, paras);
  73. }
  74.  
  75. /// <summary>
  76. /// 执行没有参数的存储过程
  77. /// </summary>
  78. /// <param name="ProcName">存储过程名称</param>
  79. /// <returns>受影响的行数</returns>
  80. public static int ExcuteProc(string ProcName)
  81. {
  82. return ExcuteSQL(ProcName, CommandType.StoredProcedure);
  83. }
  84.  
  85. /// <summary>
  86. /// 执行有参数的存储过程
  87. /// </summary>
  88. /// <param name="ProcName">存储过程名称</param>
  89. /// <param name="pars">参数</param>
  90. /// <returns>受影响的行数</returns>
  91. public static int ExcuteProc(string ProcName, SqlParameter[] pars)
  92. {
  93. return ExcuteSQL(ProcName, CommandType.StoredProcedure, pars);
  94. }
  95.  
  96. #endregion
  97.  
  98. #region 获取第一行第一列的值
  99.  
  100. /// <summary>
  101. /// 执行SQL语句,返回首行首列
  102. /// </summary>
  103. /// <param name="strSQL">要执行的SQL语句</param>
  104. /// <param name="cmdtype">执行的类型</param>
  105. /// <param name="paras">参数列表,没有参数填入null</param>
  106. /// <returns>返回的首行首列</returns>
  107. public static object GetObject(string strSQL, CommandType cmdtype, params SqlParameter[] paras)
  108. {
  109. object obj = null;
  110. using (SqlConnection conn = new SqlConnection(StrConn))
  111. {
  112. SqlCommand cmd = new SqlCommand(strSQL, conn);
  113. cmd.CommandType = cmdtype;
  114. if (paras != null)
  115. {
  116. cmd.Parameters.AddRange(paras);
  117.  
  118. }
  119.  
  120. conn.Open();
  121. obj = cmd.ExecuteScalar();
  122. conn.Close();
  123. }
  124. return obj;
  125. }
  126.  
  127. /// <summary>
  128. /// 根据sql语句获取单个值
  129. /// </summary>
  130. /// <param name="strSQL"></param>
  131. /// <returns></returns>
  132. public static object GetObject(string strSQL)
  133. {
  134. return GetObject(strSQL, null);
  135. }
  136.  
  137. /// <summary>
  138. /// 根据sql语句 和 参数数组获取单个值
  139. /// </summary>
  140. /// <param name="strSQL"></param>
  141. /// <param name="paras"></param>
  142. /// <returns></returns>
  143. public static object GetObject(string strSQL, SqlParameter[] paras)
  144. {
  145. return GetObject(strSQL, CommandType.Text, paras);
  146. }
  147.  
  148. /// <summary>
  149. /// 调用不带参数的存储过程获取单个值
  150. /// </summary>
  151. /// <param name="ProcName"></param>
  152. /// <returns></returns>
  153. public static object GetObjectByProc(string ProcName)
  154. {
  155. return GetObjectByProc(ProcName);
  156. }
  157.  
  158. /// <summary>
  159. /// 调用带参数的存储过程获取单个值
  160. /// </summary>
  161. /// <param name="ProcName"></param>
  162. /// <param name="paras"></param>
  163. /// <returns></returns>
  164. public static object GetObjectByProc(string ProcName, params SqlParameter[] paras)
  165. {
  166. return GetObject(ProcName, CommandType.StoredProcedure, paras);
  167. }
  168.  
  169. #endregion
  170.  
  171. #region 获取DataReader
  172.  
  173. /// <summary>
  174. /// 根据sql语句返回DataReader对象
  175. /// </summary>
  176. /// <param name="strSQL">sql语句</param>
  177. /// <returns>DataReader对象</returns>
  178. public static SqlDataReader GetReader(string strSQL)
  179. {
  180. return GetReader(strSQL, null);
  181. }
  182.  
  183. /// <summary>
  184. /// 根据sql语句和参数返回DataReader对象
  185. /// </summary>
  186. /// <param name="strSQL">sql语句</param>
  187. /// <param name="paras">参数数组</param>
  188. /// <returns>DataReader对象</returns>
  189. public static SqlDataReader GetReader(string strSQL, params SqlParameter[] paras)
  190. {
  191. return GetReader(strSQL, CommandType.Text, paras);
  192. }
  193.  
  194. /// <summary>
  195. /// 调用不带参数的存储过程,返回DataReader对象
  196. /// </summary>
  197. /// <param name="procName">存储过程名称</param>
  198. /// <returns>DataReader对象</returns>
  199. public static SqlDataReader GetReaderByProc(string procName)
  200. {
  201. return GetReaderByProc(procName);
  202. }
  203.  
  204. /// <summary>
  205. /// 调用带有参数的存储过程,返回DataReader对象
  206. /// </summary>
  207. /// <param name="procName">存储过程名</param>
  208. /// <param name="paras">参数数组</param>
  209. /// <returns>DataReader对象</returns>
  210. public static SqlDataReader GetReaderByProc(string procName, params SqlParameter[] paras)
  211. {
  212. return GetReader(procName, CommandType.StoredProcedure, paras);
  213. }
  214.  
  215. /// <summary>
  216. /// 查询SQL语句获取DataReader
  217. /// </summary>
  218. /// <param name="strSQL">查询的SQL语句</param>
  219. /// <param name="cmdtype">执行类型</param>
  220. /// <param name="paras">参数列表,没有参数填入null</param>
  221. /// <returns>查询到的DataReader(关闭该对象的时候,自动关闭连接)</returns>
  222. public static SqlDataReader GetReader(string strSQL, CommandType cmdtype, params SqlParameter[] paras)
  223. {
  224. SqlDataReader sqldr = null;
  225. SqlConnection conn = new SqlConnection(StrConn);
  226. SqlCommand cmd = new SqlCommand(strSQL, conn);
  227. cmd.CommandType = cmdtype;
  228. if (paras != null)
  229. {
  230. cmd.Parameters.AddRange(paras);
  231. }
  232. conn.Open();
  233. //CommandBehavior.CloseConnection的作用是如果关联的DataReader对象关闭,则连接自动关闭
  234. sqldr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  235. return sqldr;
  236. }
  237.  
  238. #endregion
  239.  
  240. #region 获取DataTable
  241.  
  242. /// <summary>
  243. /// 执行查询,返回DataTable对象
  244. /// </summary>
  245. /// <param name="strSQL">sql语句</param>
  246. /// <param name="cmdtype">Command类型</param>
  247. /// <param name="paras">参数数组</param>
  248. /// <returns>DataTable对象</returns>
  249. public static DataTable GetTable(string strSQL, CommandType cmdtype, params SqlParameter[] paras)
  250. {
  251. DataTable dt = new DataTable(); ;
  252. using (SqlConnection conn = new SqlConnection(StrConn))
  253. {
  254. SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);
  255. da.SelectCommand.CommandType = cmdtype;
  256. if (paras != null)
  257. {
  258. da.SelectCommand.Parameters.AddRange(paras);
  259. }
  260. da.Fill(dt);
  261. }
  262. return dt;
  263. }
  264.  
  265. /// <summary>
  266. /// 执行无参数语句
  267. /// </summary>
  268. /// <param name="strSQL">执行SQL</param>
  269. /// <returns>DataTable</returns>
  270. public static DataTable GetTable(string strSQL)
  271. {
  272. return GetTable(strSQL, null);
  273. }
  274.  
  275. /// <summary>
  276. /// 执行有参语句
  277. /// </summary>
  278. /// <param name="strSQL">执行SQL</param>
  279. /// <param name="paras">参数数组</param>
  280. /// <returns>DataTable</returns>
  281. public static DataTable GetTable(string strSQL, params SqlParameter[] paras)
  282. {
  283. return GetTable(strSQL, CommandType.Text, paras);
  284. }
  285.  
  286. #endregion
  287.  
  288. #region 获取DataSet
  289.  
  290. /// <summary>
  291. /// 执行查询,返回DataSet对象
  292. /// </summary>
  293. /// <param name="strSQL">sql语句</param>
  294. /// <param name="cmdtype">Command类型</param>
  295. /// <param name="paras">参数数组</param>
  296. /// <returns>DataSet对象</returns>
  297. public static DataSet GetDataSet(string strSQL, CommandType cmdtype, params SqlParameter[] paras)
  298. {
  299. DataSet dt = new DataSet(); ;
  300. using (SqlConnection conn = new SqlConnection(StrConn))
  301. {
  302. SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);
  303. da.SelectCommand.CommandType = cmdtype;
  304. if (paras != null)
  305. {
  306. da.SelectCommand.Parameters.AddRange(paras);
  307. }
  308. da.Fill(dt);
  309. }
  310. return dt;
  311. }
  312.  
  313. /// <summary>
  314. /// 执行无参数的SQL
  315. /// </summary>
  316. /// <param name="strSQL">执行SQL</param>
  317. /// <returns>DataSet</returns>
  318. public static DataSet GetDataSet(string strSQL)
  319. {
  320. return GetDataSet(strSQL, null);
  321. }
  322.  
  323. /// <summary>
  324. /// 执行有参数的SQL
  325. /// </summary>
  326. /// <param name="strSQL">执行SQL</param>
  327. /// <param name="paras">参数数组</param>
  328. /// <returns>DataSet</returns>
  329. public static DataSet GetDataSet(string strSQL, SqlParameter[] paras)
  330. {
  331. return GetDataSet(strSQL, CommandType.Text, paras);
  332. }
  333.  
  334. #endregion
  335.  
  336. #region 批量插入数据处理
  337.  
  338. /// <summary>
  339. /// 往数据库中批量插入数据
  340. /// </summary>
  341. /// <param name="sourceDt">数据源表</param>
  342. /// <param name="targetTable">服务器上目标表</param>
  343. public static void BulkToDB(DataTable sourceDt, string targetTable)
  344. {
  345. SqlConnection conn = new SqlConnection(strConn);
  346. SqlBulkCopy bulkCopy = new SqlBulkCopy(conn); //用其它源的数据有效批量加载sql server表中
  347. bulkCopy.DestinationTableName = targetTable; //服务器上目标表的名称
  348. bulkCopy.BatchSize = sourceDt.Rows.Count; //每一批次中的行数
  349.  
  350. try
  351. {
  352. conn.Open();
  353. if (sourceDt != null && sourceDt.Rows.Count != )
  354. bulkCopy.WriteToServer(sourceDt); //将提供的数据源中的所有行复制到目标表中
  355. }
  356. catch (System.Exception ex)
  357. {
  358. throw ex;
  359. }
  360. finally
  361. {
  362. conn.Close();
  363. if (bulkCopy != null)
  364. bulkCopy.Close();
  365. }
  366.  
  367. }
  368.  
  369. #endregion
  370.  
  371. #endregion
  372. }
  373. }

.Net SqlDbHelper的更多相关文章

  1. ASP.NET常用的SqlDbHelper类

    请引用 using System.Data;using System.Data.SqlClient; 两个命名空间. 可以满足常用的数据集,读取多条数据,以及增删改操作 代码: /// <sum ...

  2. sqldbhelper

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data. ...

  3. SqlDBHelper常用方法

    /*============================================================= *.net连接数据库常用方法 *Author : dongny,Li * ...

  4. SqlDbHelper备份,做项目时方便应用(目前不太全,把自己项目中的逐渐转移过来)

    ****************************************** 这是官网新闻左侧类别那部分用到的 **************************************** ...

  5. C# 操作数据库常用的 SqlDbHelper

    原博客园转载于   https://www.cnblogs.com/felix-wang/p/6742785.html using System; using System.Collections.G ...

  6. 返回泛型集合的SqlDBHelper

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using Entity; ...

  7. 重拾MVC——第一天:数据库连接与SqlDbHelper

    这个 SqlDbHelper 是我参考网上的和以前用过的 SqlDbHelper 自己写的一个非常简单的东西,主要是记录自己的学习情况 首先在Web.config中配置数据库连接字符串: <co ...

  8. ASP.NET数据库连接类(SqlDBHelper)

    第一步:创建一个名为SqlDBHelper的类,用来作为联通数据库和系统之间的桥梁. 第二步:引入命名空间,如果System.Configuration.System.Transcations这两个命 ...

  9. SQLSERVER单表CRUD通用方法

    一.适用场景 ①当你书写简单的增删改查心累了 ②当你的项目不考虑并发.高性能 ③当你追求更快速的开发效率 ④当你的业务只涉及单表 二.代码展示 ①单表Insert public bool Insert ...

随机推荐

  1. solrcloud

    @Test public void querySolrCloud(){ String zkHost = "127.0.0.1:2181"; String defaultCollec ...

  2. tc 146 2 BridgeCrossing(n人过桥问题)

    SRM 146 2 1000BridgeCrossing Problem Statement A well-known riddle goes like this: Four people are c ...

  3. Ubuntu 14 如何创建软件的 启动器/桌面图标?

    如题所示:Ubuntu 14 如何创建软件的 启动器/桌面图标? 解决方案: 将 /usr/share/applications/ 里面的相应图标复制到桌面即可. 同理,也可“拖动”到左边的“启动器栏 ...

  4. 又一个绝对棒的对话框插件fancybox v1.3.4

    http://www.jsfoot.com/jquery/demo/2011-07-30/fancybox/index.html jquery插件:fancybox   Fancybox的特点如下: ...

  5. linux 下开放端口问题

    Linux安装Tomcat后本地可以正常访问,可是这时Tomcat还不能被外界访问需要在Linux默认防护墙上打开8080端口 打开 /etc/sysconfig/iptables   [root@l ...

  6. 我的Java书单之优秀的入门书

    我始终相信,学习任何一门新技术,该技术相关的优秀书籍总是最好的资料.当然了,优秀的视频教程能帮组你快速地了解该技术,但是要深入和系统地去学习该技术,好的书籍就显得尤为重要了.结合我自己学习java的经 ...

  7. 使用MyEclipse生成Java注释时,使用的Code Template

    设置注释模板的入口: Window->Preference->Java->Code Style->Code Template, 然后展开Comments节点就是所有需设置注释的 ...

  8. 如何学习caffe

    知乎上的讨论:https://www.zhihu.com/question/27982282 从0开始山寨caffe系列:http://www.cnblogs.com/neopenx/archive/ ...

  9. PingUtil in Android

    Ping a host in Android:“ping -c 1 127.0.0.1”-c 1: The ping times. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 ...

  10. 1.1---判断字符串是否所有字符都不相同(CC150)

    import java.util.*; public class Different { public boolean checkDifferent(String str) { // write co ...