`
feiliboos
  • 浏览: 664817 次
文章分类
社区版块
存档分类
最新评论

一个支持SqlClient和OleDb的ADO.NET常用操作通用类

 
阅读更多
  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Text;
  4. usingSystem.Data;
  5. usingSystem.Data.SqlClient;
  6. usingSystem.Configuration;
  7. usingSystem.Data.OleDb;
  8. /*
  9. ***************************************
  10. **
  11. *作者:GhostBear*
  12. *博客:http://blog.csdn.net/ghostbear*
  13. **
  14. ***************************************
  15. */
  16. namespaceAdoNetOmnipotence
  17. {
  18. ///<summary>
  19. ///操纵Ado.net的通用类(sql和oledb)
  20. ///</summary>
  21. publicclassOmnipotence
  22. {
  23. boolisSqlClient=true;//判断调用sqlclient还是oledb
  24. stringconnstr;//连接字符串
  25. SqlConnectionsconn=null;
  26. OleDbConnectionoconn=null;
  27. ///<summary>
  28. ///初始化字符串
  29. ///</summary>
  30. ///<paramname="connectionstring">连接字符串</param>
  31. publicOmnipotence(stringconnectionstring)
  32. {
  33. this.connstr=connectionstring;
  34. }
  35. ///<summary>
  36. ///指定连接字符串和操纵的目标
  37. ///</summary>
  38. ///<paramname="connectionstring">连接字符串</param>
  39. ///<paramname="issqlClient">操纵的目标</param>
  40. publicOmnipotence(stringconnectionstring,boolissqlClient)
  41. {
  42. this.connstr=connectionstring;
  43. this.isSqlClient=issqlClient;
  44. }
  45. ///<summary>
  46. ///打开连接
  47. ///</summary>
  48. privatevoidOpen()
  49. {
  50. if(isSqlClient)
  51. {
  52. if(sconn==null)
  53. sconn=newSqlConnection(connstr);
  54. if(sconn.State==ConnectionState.Closed)
  55. sconn.Open();
  56. }
  57. else
  58. {
  59. if(oconn==null)
  60. oconn=newOleDbConnection(connstr);
  61. if(oconn.State==ConnectionState.Closed)
  62. oconn.Open();
  63. }
  64. }
  65. ///<summary>
  66. ///关闭连接
  67. ///</summary>
  68. privatevoidClose()
  69. {
  70. if(isSqlClient)
  71. {
  72. if(sconn!=null)
  73. if(sconn.State==ConnectionState.Open)
  74. sconn.Close();
  75. }
  76. else
  77. {
  78. if(oconn!=null)
  79. if(oconn.State==ConnectionState.Open)
  80. oconn.Close();
  81. }
  82. }
  83. /*
  84. ***************************************
  85. **
  86. *作者:GhostBear*
  87. *博客:http://blog.csdn.net/ghostbear*
  88. **
  89. ***************************************
  90. */
  91. ///<summary>
  92. ///返回command对象,可以是sqlcommand或oledbcommand
  93. ///</summary>
  94. ///<paramname="sqlcmd">命令</param>
  95. ///<paramname="isStored">是否存储过程</param>
  96. ///<paramname="param">参数</param>
  97. ///<returns>一个装箱的command对象</returns>
  98. privateobjectcommand(stringsqlcmd,boolisStored,IDataParameter[]param)
  99. {
  100. if(isSqlClient)
  101. {
  102. SqlCommandcmd=newSqlCommand(sqlcmd);//初始化command
  103. cmd.Connection=sconn;//赋予连接对象
  104. if(isStored)
  105. cmd.CommandType=CommandType.StoredProcedure;//赋予命令类型
  106. else
  107. cmd.CommandType=CommandType.Text;
  108. if(param!=null)
  109. {
  110. foreach(SqlParametertinparam)
  111. {
  112. cmd.Parameters.Add(t);//参数数据库不为空则添加参数
  113. }
  114. }
  115. returncmd;//返回sqlcommand
  116. }
  117. else
  118. {
  119. OleDbCommandcmd=newOleDbCommand(sqlcmd);//初始化command
  120. cmd.Connection=oconn;//赋予连接对象
  121. if(isStored)
  122. cmd.CommandType=CommandType.StoredProcedure;//赋予命令类型
  123. else
  124. cmd.CommandType=CommandType.Text;
  125. if(param!=null)
  126. {
  127. foreach(OleDbParametertinparam)
  128. {
  129. cmd.Parameters.Add(t);//参数数据库不为空则添加参数
  130. }
  131. }
  132. returncmd;//返回Oledbcommand
  133. }
  134. }
  135. ///<summary>
  136. ///返回dataadapt对象
  137. ///</summary>
  138. ///<paramname="command">command对象</param>
  139. ///<returns>一个装箱的dataadapter对象</returns>
  140. privateobjectadapter(objectcommand)//返回DataAdpter类型的对象
  141. {
  142. objectadpt;
  143. if(isSqlClient)
  144. {
  145. adpt=newSqlDataAdapter((SqlCommand)command);
  146. }
  147. else
  148. {
  149. adpt=newOleDbDataAdapter((OleDbCommand)command);
  150. }
  151. returnadpt;
  152. }
  153. ///<summary>
  154. ///执行操作。返回影响的行数
  155. ///</summary>
  156. ///<paramname="sqlcmd">sql语句或存储过程名</param>
  157. ///<paramname="isStored">是否为存储过程</param>
  158. ///<returns>语句执行影响的行数</returns>
  159. /*
  160. ***************************************
  161. **
  162. *作者:GhostBear*
  163. *博客:http://blog.csdn.net/ghostbear*
  164. **
  165. ***************************************
  166. */
  167. publicvoidRunProc(stringsqlcmd,boolisStored,outintinfectionRows)
  168. {
  169. SqlCommandscmd;
  170. OleDbCommandocmd;
  171. Open();
  172. if(isSqlClient)
  173. {
  174. scmd=(SqlCommand)command(sqlcmd,isStored,null);
  175. infectionRows=scmd.ExecuteNonQuery();
  176. Close();
  177. }
  178. else
  179. {
  180. ocmd=(OleDbCommand)command(sqlcmd,isStored,null);
  181. infectionRows=ocmd.ExecuteNonQuery();
  182. Close();
  183. }
  184. return;
  185. }
  186. ///<summary>
  187. ///执行操作。返回影响的行数
  188. ///</summary>
  189. ///<paramname="sqlcmd">sql语句或存储过程名</param>
  190. ///<paramname="isStored">是否为存储过程</param>
  191. ///<paramname="param">执行所需要的参数</param>
  192. ///<returns>操作影响的行数</returns>
  193. publicvoidRunProc(stringsqlcmd,boolisStored,IDataParameter[]param,outintinfectionRows)
  194. {
  195. SqlCommandscmd;
  196. OleDbCommandocmd;
  197. Open();
  198. if(isSqlClient)
  199. {
  200. scmd=(SqlCommand)command(sqlcmd,isStored,param);
  201. infectionRows=scmd.ExecuteNonQuery();
  202. Close();
  203. }
  204. else
  205. {
  206. ocmd=(OleDbCommand)command(sqlcmd,isStored,param);
  207. infectionRows=ocmd.ExecuteNonQuery();
  208. Close();
  209. }
  210. return;
  211. }
  212. /*
  213. ***************************************
  214. **
  215. *作者:GhostBear*
  216. *博客:http://blog.csdn.net/ghostbear*
  217. **
  218. ***************************************
  219. */
  220. ///<summary>
  221. ///返回数据集合中第一行第一列中的值
  222. ///</summary>
  223. ///<paramname="sqlcmd">sql语句或存储过程名</param>
  224. ///<paramname="isStored">是否存储过程</param>
  225. ///<paramname="isReturnContetn">返回值</param>
  226. ///<returns></returns>
  227. publicvoidRunProc(stringsqlcmd,boolisStored,outobjectisReturnContent)
  228. {
  229. SqlCommandscmd;
  230. OleDbCommandocmd;
  231. Open();
  232. if(isSqlClient)
  233. {
  234. scmd=(SqlCommand)command(sqlcmd,isStored,null);
  235. isReturnContent=scmd.ExecuteScalar();
  236. Close();
  237. }
  238. else
  239. {
  240. ocmd=(OleDbCommand)command(sqlcmd,isStored,null);
  241. isReturnContent=ocmd.ExecuteScalar();
  242. Close();
  243. }
  244. return;
  245. }
  246. ///<summary>
  247. ///返回数据集合中第一行第一列中的值
  248. ///</summary>
  249. ///<paramname="sqlcmd">sql语句或存储过程名</param>
  250. ///<paramname="isStored">是否存储过程</param>
  251. ///<paramname="param">参数集合</param>
  252. ///<paramname="isReturnContent">返回值</param>
  253. ///<returns></returns>
  254. publicvoidRunProc(stringsqlcmd,boolisStored,IDataParameter[]param,outobjectisReturnContent)
  255. {
  256. SqlCommandscmd;
  257. OleDbCommandocmd;
  258. Open();
  259. if(isSqlClient)
  260. {
  261. scmd=(SqlCommand)command(sqlcmd,isStored,param);
  262. isReturnContent=scmd.ExecuteScalar();
  263. Close();
  264. }
  265. else
  266. {
  267. ocmd=(OleDbCommand)command(sqlcmd,isStored,param);
  268. isReturnContent=ocmd.ExecuteScalar();
  269. Close();
  270. }
  271. return;
  272. }
  273. /*
  274. ***************************************
  275. **
  276. *作者:GhostBear*
  277. *博客:http://blog.csdn.net/ghostbear*
  278. **
  279. ***************************************
  280. */
  281. ///<summary>
  282. ///返回sqldatareader对象
  283. ///</summary>
  284. ///<paramname="sqlcmd">sql语句或存储过程</param>
  285. ///<paramname="isStored">是否存储过程</param>
  286. ///<paramname="reader">输出sqldatareader的out参数</param>
  287. publicvoidRunProc(stringsqlcmd,boolisStored,outSqlDataReaderreader)
  288. {
  289. SqlCommandscmd;
  290. Open();
  291. scmd=(SqlCommand)command(sqlcmd,isStored,null);
  292. reader=scmd.ExecuteReader(CommandBehavior.CloseConnection);
  293. return;
  294. }
  295. ///<summary>
  296. ///返回oledbdatareader对象
  297. ///</summary>
  298. ///<paramname="sqlcmd">sql语句或存储过程</param>
  299. ///<paramname="isStored">是否存储过程</param>
  300. ///<paramname="reader">输出oledbdatareader的out参数</param>
  301. publicvoidRunProc(stringsqlcmd,boolisStored,outOleDbDataReaderreader)
  302. {
  303. OleDbCommandocmd;
  304. Open();
  305. ocmd=(OleDbCommand)command(sqlcmd,isStored,null);
  306. reader=ocmd.ExecuteReader(CommandBehavior.CloseConnection);
  307. return;
  308. }
  309. ///<summary>
  310. ///返回oledbdatareader对象
  311. ///</summary>
  312. ///<paramname="sqlcmd">sql语句或存储过程</param>
  313. ///<paramname="isStored">是否存储过程</param>
  314. ///<paramname="param">命令的参数</param>
  315. ///<paramname="reader">输出oledbdatareader的out参数</param>
  316. publicvoidRunProc(stringsqlcmd,boolisStored,IDataParameter[]param,outSqlDataReaderreader)
  317. {
  318. SqlCommandscmd;
  319. Open();
  320. scmd=(SqlCommand)command(sqlcmd,isStored,param);
  321. reader=scmd.ExecuteReader(CommandBehavior.CloseConnection);
  322. return;
  323. }
  324. ///<summary>
  325. ///返回oledbdatareader对象
  326. ///</summary>
  327. ///<paramname="sqlcmd">sql语句或存储过程名</param>
  328. ///<paramname="isStored">是否存储过程</param>
  329. ///<paramname="param">命令参数</param>
  330. ///<paramname="reader">输出参数</param>
  331. publicvoidRunProc(stringsqlcmd,boolisStored,IDataParameter[]param,outOleDbDataReaderreader)
  332. {
  333. OleDbCommandocmd;
  334. Open();
  335. ocmd=(OleDbCommand)command(sqlcmd,isStored,param);
  336. reader=ocmd.ExecuteReader(CommandBehavior.CloseConnection);
  337. return;
  338. }
  339. /*
  340. ***************************************
  341. **
  342. *作者:GhostBear*
  343. *博客:http://blog.csdn.net/ghostbear*
  344. **
  345. ***************************************
  346. */
  347. ///<summary>
  348. ///返回dataset对象
  349. ///</summary>
  350. ///<paramname="sqlcmd">sql语句或命令</param>
  351. ///<paramname="isStored">是否存储过程</param>
  352. ///<paramname="ds">输出参数</param>
  353. publicvoidRunProc(stringsqlcmd,boolisStored,outDataSetds)
  354. {
  355. SqlDataAdaptersadpt=null;
  356. OleDbDataAdapteroadpt=null;
  357. DataSetmyds=newDataSet();
  358. if(isSqlClient)
  359. {
  360. Open();
  361. sadpt=(SqlDataAdapter)adapter(command(sqlcmd,isStored,null));
  362. sadpt.Fill(myds);
  363. Close();
  364. }
  365. else
  366. {
  367. Open();
  368. oadpt=(OleDbDataAdapter)adapter(command(sqlcmd,isStored,null));
  369. oadpt.Fill(myds);
  370. Close();
  371. }
  372. ds=myds;
  373. return;
  374. }
  375. /*
  376. ***************************************
  377. **
  378. *作者:GhostBear*
  379. *博客:http://blog.csdn.net/ghostbear*
  380. **
  381. ***************************************
  382. */
  383. ///<summary>
  384. ///返回dataset对象
  385. ///</summary>
  386. ///<paramname="sqlcmd">sql语句或命令</param>
  387. ///<paramname="isStored">是否存储过程</param>
  388. ///<paramname="param">参数</param>
  389. ///<paramname="ds">输出dataset</param>
  390. publicvoidRunProc(stringsqlcmd,boolisStored,IDataParameter[]param,outDataSetds)
  391. {
  392. SqlDataAdaptersadpt=null;
  393. OleDbDataAdapteroadpt=null;
  394. DataSetmyds=newDataSet();
  395. if(isSqlClient)
  396. {
  397. Open();
  398. sadpt=(SqlDataAdapter)adapter(command(sqlcmd,isStored,param));
  399. sadpt.Fill(myds);
  400. Close();
  401. }
  402. else
  403. {
  404. Open();
  405. oadpt=(OleDbDataAdapter)adapter(command(sqlcmd,isStored,param));
  406. oadpt.Fill(myds);
  407. Close();
  408. }
  409. ds=myds;
  410. return;
  411. }
  412. }
  413. }
分享到:
评论

相关推荐

    ADO.NET本质论.pdf

    书中深入剖析了ado.net的本质,探索了类、接口、属性和方法的工作原理,同时还为其他数据访问api(包括oledb,ado,odbc和jdbc)的程序员,提供了有价值的参考材料。本书适合具有一定数据库基础的开发人员阅读,也可...

    .NET通用数据库操作帮助类,可支持Odbc、OleDb、OracleClient、SqlClient、SqlServerCe等

    .NET通用数据库操作帮助类,可支持Odbc、OleDb、OracleClient、SqlClient、SqlServerCe等多种数据库提供程序操作

    ADO.net图书管理系统

    名称空间 System.Data 通用的类 System.Data.SqlClient 专用于访问SQL Server数据库的类。 System.Data.OleDb 通过OleDb接口访问其他数据库的类。

    ADO.net学习笔记

    2.Ole DB.net的核心对象 OleDbConnection、OleDbCommand、OleDbDataReader和OleDbDataAdapter 这4个对象包含在System.Data.OleDb命名控件中,需要将这个命名空间引入到文件中 目前主要用来访问Access、Foxpro等简单...

    一个经典的ADO.NET入门例子

    下面是我在《ADO.NET实用指南》这本书上看到的一个例子,比较清楚的讲解 了ADO.NET的使用方法。 Imports System.Data.SqlClient Imports System.Data Imports System.Data.Common Public Class Form1 ...

    ADO.NET通用数据库访问类

    本文实例为大家分享了ADO.NET通用数据库访问类,供大家参考学习,具体内容如下 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ...

    .NET Framework 4.0 常用类库参考手册 [微软官方 MSDN]

    其他类提供支持下列操作的服务:数据类型转换,方法参数操作,数学计算,远程和本地程序调用,应用程序环境管理以及对托管和非托管应用程序的监管。 System.Collections 包含定义各种对象集合(如列表、队列、位数...

    ADO.NET总结方法概述

    ADO.NET 包含2个组件 1..NET framework提供的程序(6,7章) (1)Connection 连接 System.Data.SqlClient.SqlConnection 数据库连接: 指定连接的服务器 登陆服务器的标识 连接数据库 设置连接字符串:server=.;uid=...

    oledb链接使用的底层链接类

    原来是一个SqlClient的,后因为做access所以,就改成oledb方式链接数据库的链接类了! 没啥技术含量,就是用着方便!

    c#.net 通用的数据访问类

    c#写的数据访问类 /// /// 通用数据库访问类-UniversalDAL类, /// 支持SqlClient、OleDb、Odbc、OracleClient等 /// 不同类型的数据源

    ADO.NET数据库增删改查.zip

    C# vs2017与SQL Server 2012的增删改查的简单应用实例,在控制下运行,基于System.Data.SqlClient的Sqlconnection和SqlCamand的实例应用

    datalab:此存储库用于实验和探索涉及ADO.NET,EF Core和与.NET数据有关的其他领域的新思想

    但是,它还是一个庞大而古老的代码库,其行为之间存在许多复杂的交互作用。这使得很难研究使用更新的.NET Core功能可能获得的收益。因此,我们将与社区合作开始这个实验,以确定对于.NET高性能SQL Server驱动程序有...

    .net 平台 通用的数据库访问类

    ;database=Grant_Manage;uid=sa;pwd=;" providerName="System.Data.SqlClient"/&gt; &lt;/connectionStrings&gt;

    Microsoft .NET Framework 3.5 Service Pack 1

    Microsoft .NET Framework 3.5 Service Pack 1 是一个累积更新,包含很多基于 .NET Framework 2.0、3.0 和 3.5 不断生成的新功能,此外还包括 .NET Framework 2.0 Service Pack 2 和 .NET Framework 3.0 Service ...

    SqlClient:Microsoft.Data.SqlClient为.NET应用程序提供到SQL Server的数据库连接

    现在处于通用状态,它是两个System.Data.SqlClient组件的联合,这两个组件独立生活在.NET Framework和.NET Core中。 展望未来,将在Microsoft.Data.SqlClient中实现对新SQL Server功能的支持。 可支持性 Microsoft....

    数据库开发总结(ADO.NET小结)

    一.用SqlConnection连接SQL Server 1..加入命名空间 using System.Data.SqlClient; 2.连接数据库 SqlConnection myConnection = new SqlConnection(); myConnection.ConnectionString = “user id=sa;...

    VS连接数据库的用法PPT

    进行ADO.NET程序开发的第一步就是引用System.Data命名空间,其中含有所有的ADO.NET类,将using指令插入在程序的顶端: using System.Data; 1. SQL Server .NET数据提供者 using System.Data.SqlClient; 2. OLE ...

    ActiveReports for .NET--灵活强大的.Net 报表制作控件

    具有OLEDB和SqlClient报表数据源 具有灵活的xml数据源 绑定到Dataset,DataView,DataTable和任何IListSource 控件 数据源属性能在运行时修改,生成ad hoc(动态)报表 灵活的非绑定数据 预览和输出-容易...

    十天学会ASP.net--我认为ASP.NET比ASP难很多,希望大家做好准备

    实际上C#就一般的操作来说,只是区分大小写和多了一个分号这两点与VB.NET不同其他都差不多啊。在ASP里面我们读取数据就直接用RECORDSET,然后在HTML代码里面穿插就可以显示了,但是ASP.NET讲究的是代码分离,如果...

    ADO.NET获取数据(DataSet)同时获取表的架构实例

    普通的ADO.NET获取DataSet的写法如下: using System.Configuration; using System.Data; using System.Data.SqlClient; public class SQLHelper { private static readonly string ConnectionString = ...

Global site tag (gtag.js) - Google Analytics