1. /// <summary>
  2. /// 编 码 人:苏飞
  3. /// 联系方式:361983679
  4. /// 更新网站:[url=http://www.sufeinet.com/thread-655-1-1.html]http://www.sufeinet.com/thread-655-1-1.html[/url]
  5. /// </summary>
  6. using System;
  7. using System.Collections;
  8. using System.Collections.Specialized;
  9. using System.Data;
  10. using System.Data.OleDb;
  11. using System.Configuration;
  12.  
  13. namespace Maticsoft.DBUtility
  14. {
  15. /// <summary>
  16. /// 数据访问基础类(基于OleDb)
  17. /// 可以用户可以修改满足自己项目的需要。
  18. /// </summary>
  19. public abstract class DbHelperOleDb
  20. {
  21. //数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库.
  22. public static string connectionString = "连接字符串";
  23. public DbHelperOleDb()
  24. {
  25. }
  26.  
  27. #region 公用方法
  28.  
  29. public static int GetMaxID(string FieldName, string TableName)
  30. {
  31. string strsql = "select max(" + FieldName + ")+1 from " + TableName;
  32. object obj = DbHelperSQL.GetSingle(strsql);
  33. if (obj == null)
  34. {
  35. return ;
  36. }
  37. else
  38. {
  39. return int.Parse(obj.ToString());
  40. }
  41. }
  42. public static bool Exists(string strSql)
  43. {
  44. object obj = DbHelperSQL.GetSingle(strSql);
  45. int cmdresult;
  46. if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
  47. {
  48. cmdresult = ;
  49. }
  50. else
  51. {
  52. cmdresult = int.Parse(obj.ToString());
  53. }
  54. if (cmdresult == )
  55. {
  56. return false;
  57. }
  58. else
  59. {
  60. return true;
  61. }
  62. }
  63. public static bool Exists(string strSql, params OleDbParameter[] cmdParms)
  64. {
  65. object obj = GetSingle(strSql, cmdParms);
  66. int cmdresult;
  67. if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
  68. {
  69. cmdresult = ;
  70. }
  71. else
  72. {
  73. cmdresult = int.Parse(obj.ToString());
  74. }
  75. if (cmdresult == )
  76. {
  77. return false;
  78. }
  79. else
  80. {
  81. return true;
  82. }
  83. }
  84.  
  85. #endregion
  86.  
  87. #region 执行简单SQL语句
  88.  
  89. /// <summary>
  90. /// 执行SQL语句,返回影响的记录数
  91. /// </summary>
  92. /// <param name="SQLString">SQL语句</param>
  93. /// <returns>影响的记录数</returns>
  94. public static int ExecuteSql(string SQLString)
  95. {
  96. using (OleDbConnection connection = new OleDbConnection(connectionString))
  97. {
  98. using (OleDbCommand cmd = new OleDbCommand(SQLString, connection))
  99. {
  100. try
  101. {
  102. connection.Open();
  103. int rows = cmd.ExecuteNonQuery();
  104. return rows;
  105. }
  106. catch (System.Data.OleDb.OleDbException E)
  107. {
  108. connection.Close();
  109. throw new Exception(E.Message);
  110. }
  111. }
  112. }
  113. }
  114.  
  115. /// <summary>
  116. /// 执行多条SQL语句,实现数据库事务。
  117. /// </summary>
  118. /// <param name="SQLStringList">多条SQL语句</param>
  119. public static void ExecuteSqlTran(ArrayList SQLStringList)
  120. {
  121. using (OleDbConnection conn = new OleDbConnection(connectionString))
  122. {
  123. conn.Open();
  124. OleDbCommand cmd = new OleDbCommand();
  125. cmd.Connection = conn;
  126. OleDbTransaction tx = conn.BeginTransaction();
  127. cmd.Transaction = tx;
  128. try
  129. {
  130. for (int n = ; n < SQLStringList.Count; n++)
  131. {
  132. string strsql = SQLStringList[n].ToString();
  133. if (strsql.Trim().Length > )
  134. {
  135. cmd.CommandText = strsql;
  136. cmd.ExecuteNonQuery();
  137. }
  138. }
  139. tx.Commit();
  140. }
  141. catch (System.Data.OleDb.OleDbException E)
  142. {
  143. tx.Rollback();
  144. throw new Exception(E.Message);
  145. }
  146. }
  147. }
  148. /// <summary>
  149. /// 执行带一个存储过程参数的的SQL语句。
  150. /// </summary>
  151. /// <param name="SQLString">SQL语句</param>
  152. /// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
  153. /// <returns>影响的记录数</returns>
  154. public static int ExecuteSql(string SQLString, string content)
  155. {
  156. using (OleDbConnection connection = new OleDbConnection(connectionString))
  157. {
  158. OleDbCommand cmd = new OleDbCommand(SQLString, connection);
  159. System.Data.OleDb.OleDbParameter myParameter = new System.Data.OleDb.OleDbParameter("@content", OleDbType.VarChar);
  160. myParameter.Value = content;
  161. cmd.Parameters.Add(myParameter);
  162. try
  163. {
  164. connection.Open();
  165. int rows = cmd.ExecuteNonQuery();
  166. return rows;
  167. }
  168. catch (System.Data.OleDb.OleDbException E)
  169. {
  170. throw new Exception(E.Message);
  171. }
  172. finally
  173. {
  174. cmd.Dispose();
  175. connection.Close();
  176. }
  177. }
  178. }
  179. /// <summary>
  180. /// 向数据库里插入图像格式的字段(和上面情况类似的另一种实例)
  181. /// </summary>
  182. /// <param name="strSQL">SQL语句</param>
  183. /// <param name="fs">图像字节,数据库的字段类型为image的情况</param>
  184. /// <returns>影响的记录数</returns>
  185. public static int ExecuteSqlInsertImg(string strSQL, byte[] fs)
  186. {
  187. using (OleDbConnection connection = new OleDbConnection(connectionString))
  188. {
  189. OleDbCommand cmd = new OleDbCommand(strSQL, connection);
  190. System.Data.OleDb.OleDbParameter myParameter = new System.Data.OleDb.OleDbParameter("@fs", OleDbType.Binary);
  191. myParameter.Value = fs;
  192. cmd.Parameters.Add(myParameter);
  193. try
  194. {
  195. connection.Open();
  196. int rows = cmd.ExecuteNonQuery();
  197. return rows;
  198. }
  199. catch (System.Data.OleDb.OleDbException E)
  200. {
  201. throw new Exception(E.Message);
  202. }
  203. finally
  204. {
  205. cmd.Dispose();
  206. connection.Close();
  207. }
  208. }
  209. }
  210.  
  211. /// <summary>
  212. /// 执行一条计算查询结果语句,返回查询结果(object)。
  213. /// </summary>
  214. /// <param name="SQLString">计算查询结果语句</param>
  215. /// <returns>查询结果(object)</returns>
  216. public static object GetSingle(string SQLString)
  217. {
  218. using (OleDbConnection connection = new OleDbConnection(connectionString))
  219. {
  220. using (OleDbCommand cmd = new OleDbCommand(SQLString, connection))
  221. {
  222. try
  223. {
  224. connection.Open();
  225. object obj = cmd.ExecuteScalar();
  226. if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
  227. {
  228. return null;
  229. }
  230. else
  231. {
  232. return obj;
  233. }
  234. }
  235. catch (System.Data.OleDb.OleDbException e)
  236. {
  237. connection.Close();
  238. throw new Exception(e.Message);
  239. }
  240. }
  241. }
  242. }
  243. /// <summary>
  244. /// 执行查询语句,返回OleDbDataReader
  245. /// </summary>
  246. /// <param name="strSQL">查询语句</param>
  247. /// <returns>OleDbDataReader</returns>
  248. public static OleDbDataReader ExecuteReader(string strSQL)
  249. {
  250. OleDbConnection connection = new OleDbConnection(connectionString);
  251. OleDbCommand cmd = new OleDbCommand(strSQL, connection);
  252. try
  253. {
  254. connection.Open();
  255. OleDbDataReader myReader = cmd.ExecuteReader();
  256. return myReader;
  257. }
  258. catch (System.Data.OleDb.OleDbException e)
  259. {
  260. throw new Exception(e.Message);
  261. }
  262.  
  263. }
  264. /// <summary>
  265. /// 执行查询语句,返回DataSet
  266. /// </summary>
  267. /// <param name="SQLString">查询语句</param>
  268. /// <returns>DataSet</returns>
  269. public static DataSet Query(string SQLString)
  270. {
  271. using (OleDbConnection connection = new OleDbConnection(connectionString))
  272. {
  273. DataSet ds = new DataSet();
  274. try
  275. {
  276. connection.Open();
  277. OleDbDataAdapter command = new OleDbDataAdapter(SQLString, connection);
  278. command.Fill(ds, "ds");
  279. }
  280. catch (System.Data.OleDb.OleDbException ex)
  281. {
  282. throw new Exception(ex.Message);
  283. }
  284. return ds;
  285. }
  286. }
  287.  
  288. #endregion
  289.  
  290. #region 执行带参数的SQL语句
  291.  
  292. /// <summary>
  293. /// 执行SQL语句,返回影响的记录数
  294. /// </summary>
  295. /// <param name="SQLString">SQL语句</param>
  296. /// <returns>影响的记录数</returns>
  297. public static int ExecuteSql(string SQLString, params OleDbParameter[] cmdParms)
  298. {
  299. using (OleDbConnection connection = new OleDbConnection(connectionString))
  300. {
  301. using (OleDbCommand cmd = new OleDbCommand())
  302. {
  303. try
  304. {
  305. PrepareCommand(cmd, connection, null, SQLString, cmdParms);
  306. int rows = cmd.ExecuteNonQuery();
  307. cmd.Parameters.Clear();
  308. return rows;
  309. }
  310. catch (System.Data.OleDb.OleDbException E)
  311. {
  312. throw new Exception(E.Message);
  313. }
  314. }
  315. }
  316. }
  317.  
  318. /// <summary>
  319. /// 执行多条SQL语句,实现数据库事务。
  320. /// </summary>
  321. /// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的OleDbParameter[])</param>
  322. public static void ExecuteSqlTran(Hashtable SQLStringList)
  323. {
  324. using (OleDbConnection conn = new OleDbConnection(connectionString))
  325. {
  326. conn.Open();
  327. using (OleDbTransaction trans = conn.BeginTransaction())
  328. {
  329. OleDbCommand cmd = new OleDbCommand();
  330. try
  331. {
  332. //循环
  333. foreach (DictionaryEntry myDE in SQLStringList)
  334. {
  335. string cmdText = myDE.Key.ToString();
  336. OleDbParameter[] cmdParms = (OleDbParameter[])myDE.Value;
  337. PrepareCommand(cmd, conn, trans, cmdText, cmdParms);
  338. int val = cmd.ExecuteNonQuery();
  339. cmd.Parameters.Clear();
  340.  
  341. trans.Commit();
  342. }
  343. }
  344. catch
  345. {
  346. trans.Rollback();
  347. throw;
  348. }
  349. }
  350. }
  351. }
  352.  
  353. /// <summary>
  354. /// 执行一条计算查询结果语句,返回查询结果(object)。
  355. /// </summary>
  356. /// <param name="SQLString">计算查询结果语句</param>
  357. /// <returns>查询结果(object)</returns>
  358. public static object GetSingle(string SQLString, params OleDbParameter[] cmdParms)
  359. {
  360. using (OleDbConnection connection = new OleDbConnection(connectionString))
  361. {
  362. using (OleDbCommand cmd = new OleDbCommand())
  363. {
  364. try
  365. {
  366. PrepareCommand(cmd, connection, null, SQLString, cmdParms);
  367. object obj = cmd.ExecuteScalar();
  368. cmd.Parameters.Clear();
  369. if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
  370. {
  371. return null;
  372. }
  373. else
  374. {
  375. return obj;
  376. }
  377. }
  378. catch (System.Data.OleDb.OleDbException e)
  379. {
  380. throw new Exception(e.Message);
  381. }
  382. }
  383. }
  384. }
  385.  
  386. /// <summary>
  387. /// 执行查询语句,返回OleDbDataReader
  388. /// </summary>
  389. /// <param name="strSQL">查询语句</param>
  390. /// <returns>OleDbDataReader</returns>
  391. public static OleDbDataReader ExecuteReader(string SQLString, params OleDbParameter[] cmdParms)
  392. {
  393. OleDbConnection connection = new OleDbConnection(connectionString);
  394. OleDbCommand cmd = new OleDbCommand();
  395. try
  396. {
  397. PrepareCommand(cmd, connection, null, SQLString, cmdParms);
  398. OleDbDataReader myReader = cmd.ExecuteReader();
  399. cmd.Parameters.Clear();
  400. return myReader;
  401. }
  402. catch (System.Data.OleDb.OleDbException e)
  403. {
  404. throw new Exception(e.Message);
  405. }
  406.  
  407. }
  408.  
  409. /// <summary>
  410. /// 执行查询语句,返回DataSet
  411. /// </summary>
  412. /// <param name="SQLString">查询语句</param>
  413. /// <returns>DataSet</returns>
  414. public static DataSet Query(string SQLString, params OleDbParameter[] cmdParms)
  415. {
  416. using (OleDbConnection connection = new OleDbConnection(connectionString))
  417. {
  418. OleDbCommand cmd = new OleDbCommand();
  419. PrepareCommand(cmd, connection, null, SQLString, cmdParms);
  420. using (OleDbDataAdapter da = new OleDbDataAdapter(cmd))
  421. {
  422. DataSet ds = new DataSet();
  423. try
  424. {
  425. da.Fill(ds, "ds");
  426. cmd.Parameters.Clear();
  427. }
  428. catch (System.Data.OleDb.OleDbException ex)
  429. {
  430. throw new Exception(ex.Message);
  431. }
  432. return ds;
  433. }
  434. }
  435. }
  436.  
  437. private static void PrepareCommand(OleDbCommand cmd, OleDbConnection conn, OleDbTransaction trans, string cmdText, OleDbParameter[] cmdParms)
  438. {
  439. if (conn.State != ConnectionState.Open)
  440. conn.Open();
  441. cmd.Connection = conn;
  442. cmd.CommandText = cmdText;
  443. if (trans != null)
  444. cmd.Transaction = trans;
  445. cmd.CommandType = CommandType.Text;//cmdType;
  446. if (cmdParms != null)
  447. {
  448. foreach (OleDbParameter parm in cmdParms)
  449. cmd.Parameters.Add(parm);
  450. }
  451. }
  452.  
  453. #endregion
  454.  
  455. }
  456. }

C#DbHelperOleDb,Access数据库帮助类的更多相关文章

  1. C#DbHelperOleDb,Access数据库帮助类 (转载)

    主要功能如下数据访问抽象基础类 主要是访问Access数据库主要实现如下功能 .数据访问基础类(基于OleDb)Access数据库, .得到最大值:是否存在:是否存在(基于OleDbParameter ...

  2. C#DbHelperOleDb,Access数据库帮助类 (转)

    /// <summary>/// 编 码 人:苏飞/// 联系方式:361983679  /// 更新网站:[url=http://www.sufeinet.com/thread-655- ...

  3. Microsoft Access数据库操作类(C#)

    博文介绍的Microsoft Access数据库操作类是C#语言的,可实现对Microsoft Access数据库的增删改查询等操作.并且该操作类可实现对图片的存储,博文的最后附上如何将Image图片 ...

  4. C# ACCESS数据库操作类

    这个是针对ACCESS数据库操作的类,同样也是从SQLHELPER提取而来,分页程序的调用可以参考MSSQL那个类的调用,差不多的,只是提取所有记录的数量的时候有多一个参数,这个需要注意一下! usi ...

  5. C#---数据库访问通用类、Access数据库操作类、mysql类 .[转]

    原文链接 //C# 数据库访问通用类 (ADO.NET)using System;using System.Collections.Generic;using System.Text;using Sy ...

  6. C#---数据库访问通用类、Access数据库操作类、mysql类 .

    //C# 数据库访问通用类 (ADO.NET)using System;using System.Collections.Generic;using System.Text;using System. ...

  7. C# 动软生成器对应的Access数据库操作类DbHelperOleDb

    using System;using System.Collections;using System.Collections.Specialized;using System.Data;using S ...

  8. 一个基于ASP.NET(C#)的ACCESS数据库操作类

    using System; using System.Collections; using System.Collections.Specialized; using System.Data; usi ...

  9. Access数据库访问类 帮助类

    原文发布时间为:2009-10-28 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Data.OleDb; p ...

随机推荐

  1. Stealth视频教程学习笔记(第一章)

    Stealth视频教程学习笔记(第一章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...

  2. 关于node.js的误会

    昨天写了篇博客,介绍了一下我对node.js的第一次亲密接触后的感受,以为node.js很小众,出乎我意料很多人感兴趣,并且对博客中的细节问题做了评论,最多的是围绕node.js的异步与单线程展开的, ...

  3. querySelector和querySelectorAll

    jQuery被开发者如此的青睐和它强大的选择器有很大关系,比起笨重的document.getElementById.document.getElementByName… ,查找元素很方便,其实W3C中 ...

  4. 搭建hadoop1.2集群

    环境准备 我使用的是vmware workstation,首先安装ubuntu 12.04,安装完成后通过vmware的clone,clone出两个虚机,设置的IP分别是: 192.168.74.13 ...

  5. Redmined的历史记录显示 "Updated by {{author}} {{age}} ago"

    最近Redmine出了点问题,简单查了一下,是ruby的本地冲突包i18n导致的, 先到redmine中跑命令: gem list --local,  查出本地ruby安装的所有的包 这里可以看到i1 ...

  6. 正式开始jQuery源码的学习

    查了一些资料,2.0.3版本的jq源码分析的资料比较多,就以这个版本研究学习了. 今天正式开始.

  7. Atitit RSA非对称加密原理与解决方案

    Atitit RSA非对称加密原理与解决方案 1.1. 一.一点历史 1 1.2. 八.加密和解密 2 1.3. 二.基于RSA的消息传递机制  3 1.4. 基于rsa的授权验证机器码 4 1.5. ...

  8. JQuery学习之Ajax应用

    1.AJAX=异步javaScript和XML:在不重载整个网页的情况下,AJAX通过后台加载数据,并在网页上进行显示 2.load():简单但强大的AJAX方法,load()方法从服务器加载数据,并 ...

  9. Reporting Service 没有权限登陆

    在配置好Reporting Service之后,登陆Report Mananger( http://localhost/Reports/Pages/Folder.aspx)出现一个异常,本地用户没有权 ...

  10. WPF自定义控件与样式(11)-等待/忙/正在加载状态-控件实现

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要有三种实现方式 ...