AccessDBHandler.cs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686
  1. using System;
  2. using System.Collections;
  3. using System.Configuration;
  4. using System.Data;
  5. using System.Data.OleDb;
  6. using System.Globalization;
  7. using System.Web;
  8. namespace ETD.Data
  9. {
  10. /// <summary>
  11. /// SQL Server 数据库处理类
  12. /// </summary>
  13. public class AccessDBHandler : IDBHandlerble, IDisposable
  14. {
  15. private Hashtable links;
  16. /// <summary>
  17. /// SqlCommand对象实例
  18. /// </summary>
  19. private OleDbCommand sqlCommand;
  20. /// <summary>
  21. /// 声明sql 的数据库连接对象
  22. /// </summary>
  23. private OleDbConnection sqlConnection;
  24. /// <summary>
  25. /// 取得整个系统的数据库都存放在一台服务器的数据库连接字符串
  26. /// </summary>
  27. private static string sqlDefaultConnectionString = ConfigurationManager.AppSettings["DefaultConnectionString"].Trim();
  28. /// <summary>
  29. /// 模块使用的字符串变量
  30. /// </summary>
  31. private static string sqlModuleConnectionString = string.Empty;
  32. /// <summary>
  33. /// 声明事务对象
  34. /// </summary>
  35. protected OleDbTransaction sqlTransaction;
  36. /// <summary>
  37. /// 整个系统使用同一个数据库连接,通过web.config中DefultConnectionString中的连接字符串来连接数据库
  38. /// </summary>
  39. /// <remarks>取得web.config或者app.config中AppSetting中sql_default中的连接字符串</remarks>
  40. public AccessDBHandler()
  41. {
  42. this.links = null;
  43. string ConnectionString = sqlDefaultConnectionString;
  44. if (ConfigurationManager.AppSettings["IsEncryptString"].Trim() == "1")
  45. {
  46. ConnectionString = new Security().Uncrypt(ConnectionString, "");
  47. }
  48. ConnectionString = this.GetConnectionPath(ConnectionString);
  49. this.sqlConnection = new OleDbConnection(ConnectionString);
  50. this.sqlCommand = this.sqlConnection.CreateCommand();
  51. }
  52. /// <summary>
  53. /// 不同模块使用不同的数据库连接,通过web.config中DefultConnectionString中的连接字符串来连接数据库
  54. /// </summary>
  55. /// <param name="module">模块关键字</param>
  56. public AccessDBHandler(string module)
  57. {
  58. string ConnectionString;
  59. Security security;
  60. this.links = null;
  61. if (ConfigurationManager.AppSettings["IsSameDB"].Trim() == "1")
  62. {
  63. ConnectionString = sqlDefaultConnectionString;
  64. if (ConfigurationManager.AppSettings["IsEncryptString"].Trim() == "1")
  65. {
  66. security = new Security();
  67. ConnectionString = security.Uncrypt(ConnectionString, "");
  68. }
  69. ConnectionString = this.GetConnectionPath(ConnectionString);
  70. this.sqlConnection = new OleDbConnection(ConnectionString);
  71. }
  72. else if (module == string.Empty)
  73. {
  74. ConnectionString = sqlDefaultConnectionString;
  75. if (ConfigurationManager.AppSettings["IsEncryptString"].Trim() == "1")
  76. {
  77. security = new Security();
  78. ConnectionString = security.Uncrypt(ConnectionString, "");
  79. }
  80. ConnectionString = this.GetConnectionPath(ConnectionString);
  81. this.sqlConnection = new OleDbConnection(ConnectionString);
  82. }
  83. else
  84. {
  85. sqlModuleConnectionString = ConfigurationManager.AppSettings[module + "ConnectionString"].Trim();
  86. if (ConfigurationManager.AppSettings["IsEncryptString"].Trim() == "1")
  87. {
  88. sqlModuleConnectionString = new Security().Uncrypt(sqlModuleConnectionString, "");
  89. }
  90. sqlModuleConnectionString = this.GetConnectionPath(sqlModuleConnectionString);
  91. this.sqlConnection = new OleDbConnection(sqlModuleConnectionString);
  92. }
  93. this.sqlCommand = this.sqlConnection.CreateCommand();
  94. }
  95. /// <summary>
  96. /// 添加参数
  97. /// </summary>
  98. /// <param name="paramName">参数名称</param>
  99. /// <param name="p_objParamType">参数类型</param>
  100. /// <param name="direction">参数方向</param>
  101. public void AddParameter(string paramName, DbType paramType, ParameterDirection direction)
  102. {
  103. OleDbParameter splParameter = new OleDbParameter();
  104. splParameter.ParameterName = paramName;
  105. splParameter.DbType = paramType;
  106. splParameter.Direction = direction;
  107. this.sqlCommand.Parameters.Add(splParameter);
  108. }
  109. /// <summary>
  110. /// 重载-添加参数
  111. /// </summary>
  112. /// <param name="paramName">参数名称</param>
  113. /// <param name="p_strParamType">参数类型</param>
  114. /// <param name="direction">参数方向</param>
  115. /// <param name="pValue">参数值</param>
  116. public void AddParameter(string paramName, DbType paramType, ParameterDirection direction, object pValue)
  117. {
  118. this.AddParameter(paramName, paramType, direction);
  119. this.ModifyParameter(paramName, pValue);
  120. }
  121. /// <summary>
  122. /// 添加有长度的参数
  123. /// </summary>
  124. /// <param name="paramName">参数名称</param>
  125. /// <param name="p_objParamType">参数类型</param>
  126. /// <param name="p_intParamSize">参数长度</param>
  127. /// <param name="p_objDirection">参数方向</param>
  128. public void AddParameter(string paramName, DbType paramType, int paramSize, ParameterDirection direction)
  129. {
  130. OleDbParameter splParameter = new OleDbParameter();
  131. splParameter.ParameterName = paramName;
  132. splParameter.DbType = paramType;
  133. splParameter.Size = paramSize;
  134. splParameter.Direction = direction;
  135. this.sqlCommand.Parameters.Add(splParameter);
  136. }
  137. /// <summary>
  138. /// 重载-添加有长度的参数
  139. /// </summary>
  140. /// <param name="paramName">参数名称</param>
  141. /// <param name="p_strParamType">参数类型</param>
  142. /// <param name="p_intParamSize">参数长度</param>
  143. /// <param name="p_objDirection">参数方向</param>
  144. /// <param name="pValue">参数值</param>
  145. public void AddParameter(string paramName, DbType paramType, int paramSize, ParameterDirection direction, object pValue)
  146. {
  147. this.AddParameter(paramName, paramType, paramSize, direction);
  148. this.ModifyParameter(paramName, pValue);
  149. }
  150. /// <summary>
  151. /// 启动事务处理
  152. /// </summary>
  153. /// <returns>返回执行结果状态码</returns>
  154. public void BeginTransaction()
  155. {
  156. this.ConnectionOpen();
  157. if (null == this.sqlTransaction)
  158. {
  159. this.sqlTransaction = this.sqlConnection.BeginTransaction(IsolationLevel.ReadCommitted);
  160. }
  161. this.sqlCommand.Transaction = this.sqlTransaction;
  162. }
  163. /// <summary>
  164. /// 提交事务处理
  165. /// </summary>
  166. /// <returns>返回执行结果状态码</returns>
  167. public void CommitTransaction()
  168. {
  169. try
  170. {
  171. this.sqlTransaction.Commit();
  172. }
  173. finally
  174. {
  175. this.ConnectionClose();
  176. }
  177. }
  178. /// <summary>
  179. /// 关闭数据库连接
  180. /// </summary>
  181. public void ConnectionClose()
  182. {
  183. if (ConnectionState.Closed != this.sqlConnection.State)
  184. {
  185. this.sqlConnection.Close();
  186. }
  187. }
  188. /// <summary>
  189. /// 打开数据库连接
  190. /// </summary>
  191. public void ConnectionOpen()
  192. {
  193. if (ConnectionState.Closed == this.sqlConnection.State)
  194. {
  195. this.sqlConnection.Open();
  196. }
  197. }
  198. /// <summary>
  199. /// 释放资源
  200. /// </summary>
  201. public void Dispose()
  202. {
  203. if (this.sqlConnection != null)
  204. {
  205. this.sqlConnection.Dispose();
  206. }
  207. if (this.sqlCommand != null)
  208. {
  209. this.sqlCommand.Dispose();
  210. }
  211. if (this.sqlTransaction != null)
  212. {
  213. this.sqlTransaction.Dispose();
  214. }
  215. }
  216. /// <summary>
  217. /// 返回数据适配器
  218. /// </summary>
  219. /// <param name="commandText">查询命令</param>
  220. /// <returns>返回执行结果</returns>
  221. public IDbDataAdapter ExecuteAdapter(string commandText)
  222. {
  223. return this.ExecuteAdapter(commandText, CommandType.Text);
  224. }
  225. /// <summary>
  226. /// 重载-返回数据适配器(适应存储过程调用需求)
  227. /// </summary>
  228. /// <param name="commandText">查询命令</param>
  229. /// <param name="commandType">查询命令类型</param>
  230. /// <returns>返回执行结果</returns>
  231. public IDbDataAdapter ExecuteAdapter(string commandText, CommandType commandType)
  232. {
  233. this.sqlCommand.CommandText = commandText;
  234. this.sqlCommand.CommandType = commandType;
  235. this.ConnectionOpen();
  236. return new OleDbDataAdapter(this.sqlCommand);
  237. }
  238. /// <summary>
  239. /// 返回数据集
  240. /// </summary>
  241. /// <param name="commandText">查询命令</param>
  242. /// <returns>返回执行结果</returns>
  243. public DataSet ExecuteDataSet(string commandText)
  244. {
  245. return this.ExecuteDataSet(commandText, CommandType.Text);
  246. }
  247. /// <summary>
  248. /// 重载-返回数据集(适应存储过程调用需求)
  249. /// </summary>
  250. /// <param name="commandText">查询命令</param>
  251. /// <param name="commandType">查询命令类型</param>
  252. /// <returns>返回执行结果</returns>
  253. public DataSet ExecuteDataSet(string commandText, CommandType commandType)
  254. {
  255. return this.ExecuteDataSet(commandText, commandType, "");
  256. }
  257. /// <summary>
  258. /// 重载-返回数据集(适应存储过程调用需求)
  259. /// </summary>
  260. /// <param name="commandText">查询命令</param>
  261. /// <param name="commandType">查询命令类型</param>
  262. /// <param name="tableName">表名</param>
  263. /// <returns>返回执行结果</returns>
  264. public DataSet ExecuteDataSet(string commandText, CommandType commandType, string tableName)
  265. {
  266. return this.ExecuteDataSet("", commandText, commandType, "");
  267. }
  268. /// <summary>
  269. /// 重载-返回数据集(适应存储过程调用需求)
  270. /// </summary>
  271. /// <param name="dataSetName">DataSet 名称</param>
  272. /// <param name="commandText">查询命令</param>
  273. /// <param name="commandType">查询命令类型</param>
  274. /// <param name="tableName">表名</param>
  275. /// <returns>返回执行结果</returns>
  276. public DataSet ExecuteDataSet(string dataSetName, string commandText, CommandType commandType, string tableName)
  277. {
  278. DataSet dstResult = new DataSet();
  279. dstResult.Locale = CultureInfo.InvariantCulture;
  280. if (dataSetName != string.Empty)
  281. {
  282. dstResult.DataSetName = dataSetName;
  283. }
  284. this.sqlCommand.CommandText = commandText;
  285. this.sqlCommand.CommandType = commandType;
  286. this.ConnectionOpen();
  287. if (tableName != string.Empty)
  288. {
  289. OleDbDataAdapter sqlAdapter = new OleDbDataAdapter(this.sqlCommand);
  290. sqlAdapter.Fill(dstResult, tableName);
  291. }
  292. else
  293. {
  294. new OleDbDataAdapter(this.sqlCommand).Fill(dstResult);
  295. }
  296. this.ConnectionClose();
  297. return dstResult;
  298. }
  299. /// <summary>
  300. /// 返回数据表
  301. /// </summary>
  302. /// <param name="p_strCommandText">查询命令</param>
  303. /// <returns>返回执行结果</returns>
  304. public DataTable ExecuteDataTable(string commandText)
  305. {
  306. return this.ExecuteDataTable(commandText, CommandType.Text);
  307. }
  308. /// <summary>
  309. /// 返回数据表
  310. /// </summary>
  311. /// <param name="commandText"></param>
  312. /// <param name="isCloseConnection"></param>
  313. /// <returns>返回执行结果</returns>
  314. public DataTable ExecuteDataTable(string commandText, bool isCloseConnection)
  315. {
  316. return this.ExecuteDataTable(commandText, CommandType.Text, "", isCloseConnection);
  317. }
  318. /// <summary>
  319. /// 重载-返回数据表
  320. /// </summary>
  321. /// <param name="p_strCommandText">查询命令</param>
  322. /// <param name="p_objType">查询命令类型</param>
  323. /// <returns>返回执行结果</returns>
  324. public DataTable ExecuteDataTable(string commandText, CommandType commandType)
  325. {
  326. return this.ExecuteDataTable(commandText, commandType, "");
  327. }
  328. /// <summary>
  329. /// 重载-返回数据表
  330. /// </summary>
  331. /// <param name="commandText">查询命令</param>
  332. /// <param name="commandType">查询命令类型</param>
  333. /// <param name="tableName">表名</param>
  334. /// <returns>返回执行结果</returns>
  335. public DataTable ExecuteDataTable(string commandText, CommandType commandType, string tableName)
  336. {
  337. return this.ExecuteDataTable(commandText, commandType, tableName, false);
  338. }
  339. /// <summary>
  340. /// 重载-返回数据表
  341. /// </summary>
  342. /// <param name="commandText">查询命令</param>
  343. /// <param name="commandType">查询命令类型</param>
  344. /// <param name="tableName">表名</param>
  345. /// <param name="isCloseConnection">是否关闭数据库</param>
  346. /// <returns>返回执行结果</returns>
  347. public DataTable ExecuteDataTable(string commandText, CommandType commandType, string tableName, bool isCloseConnection)
  348. {
  349. DataTable dtblResult = new DataTable();
  350. dtblResult.Locale = CultureInfo.InvariantCulture;
  351. if (tableName != string.Empty)
  352. {
  353. dtblResult.TableName = tableName;
  354. }
  355. this.sqlCommand.CommandText = commandText;
  356. this.sqlCommand.CommandType = commandType;
  357. this.ConnectionOpen();
  358. OleDbDataAdapter dadFillTable = new OleDbDataAdapter(this.sqlCommand);
  359. dadFillTable.Fill(dtblResult);
  360. dadFillTable.Fill(dtblResult);
  361. if (isCloseConnection)
  362. {
  363. this.ConnectionClose();
  364. }
  365. return dtblResult;
  366. }
  367. /// <summary>
  368. /// 返回数据表(分页)
  369. /// </summary>
  370. /// <param name="page">当前页</param>
  371. /// <param name="pageSize">每页显示数</param>
  372. /// <param name="recordCount">总记录数</param>
  373. /// <param name="strFields">需要查询的字段</param>
  374. /// <param name="strOderBy">排序字段,例如: id asc,name desc 不带order by</param>
  375. /// <param name="strTableName">查询表名称</param>
  376. /// <returns></returns>
  377. public DataTable ExecuteDataTable(int page, int pageSize, ref int recordCount, string strFields, string strOrderBy, string strTableName)
  378. {
  379. return null;
  380. }
  381. /// <summary>
  382. /// 执行无返回类型数据查询(返回影响行数)
  383. /// </summary>
  384. /// <param name="commandText">查询命令(SQL语句)</param>
  385. /// <returns>返回执行结果影响行数</returns>
  386. public int ExecuteNonQuery(string commandText)
  387. {
  388. return this.ExecuteNonQuery(commandText, CommandType.Text);
  389. }
  390. /// <summary>
  391. /// 执行无返回类型数据查询(返回影响行数)
  392. /// </summary>
  393. /// <param name="commandText">查询命令(SQL语句)</param>
  394. /// <param name="isCloseConnection">是否关闭数据连结,true: 关闭,false: 不关闭</param>
  395. /// <returns>返回执行结果影响行数</returns>
  396. public int ExecuteNonQuery(string commandText, bool isCloseConnection)
  397. {
  398. return this.ExecuteNonQuery(commandText, CommandType.Text, isCloseConnection);
  399. }
  400. /// <summary>
  401. /// 重载-无返回类型数据查询(适应存储过程调用需求且返回影响行数)
  402. /// </summary>
  403. /// <param name="commandText">查询命令</param>
  404. /// <param name="commandType">查询命令类型</param>
  405. /// <returns>返回执行结果影响行数</returns>
  406. public int ExecuteNonQuery(string commandText, CommandType commandType)
  407. {
  408. return this.ExecuteNonQuery(commandText, commandType, false);
  409. }
  410. /// <summary>
  411. /// 重载-无返回类型数据查询(适应存储过程调用需求且返回影响行数)
  412. /// </summary>
  413. /// <param name="commandText">查询命令</param>
  414. /// <param name="commandType">查询命令类型</param>
  415. /// <param name="isCloseConnection">是否关闭数据连结,true: 关闭,false: 不关闭</param>
  416. /// <returns>返回执行结果影响行数</returns>
  417. public int ExecuteNonQuery(string commandText, CommandType commandType, bool isCloseConnection)
  418. {
  419. int rows;
  420. this.sqlCommand.CommandText = commandText;
  421. this.sqlCommand.CommandType = commandType;
  422. try
  423. {
  424. this.ConnectionOpen();
  425. rows = this.sqlCommand.ExecuteNonQuery();
  426. }
  427. finally
  428. {
  429. if (isCloseConnection)
  430. {
  431. this.ConnectionClose();
  432. }
  433. }
  434. return rows;
  435. }
  436. /// <summary>
  437. /// 返回向前只读数据集查询
  438. /// </summary>
  439. /// <param name="commandText">查询命令</param>
  440. /// <returns>返回执行结果</returns>
  441. public IDataReader ExecuteReader(string commandText)
  442. {
  443. return this.ExecuteReader(commandText, CommandType.Text);
  444. }
  445. /// <summary>
  446. /// 重载-返回向前只读数据集查询(适应存储过程调用需求)
  447. /// </summary>
  448. /// <param name="commandText">查询命令</param>
  449. /// <param name="commandType">查询命令类型</param>
  450. /// <returns>返回执行结果</returns>
  451. public IDataReader ExecuteReader(string commandText, CommandType commandType)
  452. {
  453. return this.ExecuteReader(commandText, commandType, CommandBehavior.CloseConnection);
  454. }
  455. /// <summary>
  456. /// 重载-返回向前只读数据集查询(适应存储过程调用需求)
  457. /// </summary>
  458. /// <param name="commandText">查询命令</param>
  459. /// <param name="commandType">查询命令类型</param>
  460. /// <param name="commandBehavior">提供对查询结果和查询对数据库的影响的说明</param>
  461. /// <returns>返回执行结果</returns>
  462. public IDataReader ExecuteReader(string commandText, CommandType commandType, CommandBehavior commandBehavior)
  463. {
  464. IDataReader rows;
  465. this.sqlCommand.CommandText = commandText;
  466. this.sqlCommand.CommandType = commandType;
  467. this.ConnectionOpen();
  468. try
  469. {
  470. rows = this.sqlCommand.ExecuteReader(commandBehavior);
  471. }
  472. catch (OleDbException ex)
  473. {
  474. this.ConnectionClose();
  475. throw ex;
  476. }
  477. return rows;
  478. }
  479. public object ExecuteScalar(string commandText)
  480. {
  481. return this.ExecuteScalar(commandText, false);
  482. }
  483. /// <summary>
  484. /// 返回第一行第一列结果的数据查询
  485. /// </summary>
  486. /// <param name="commandText">查询命令</param>
  487. /// <param name="isCloseConnection">是否关闭数据连结,true: 关闭,false: 不关闭</param>
  488. /// <returns>返回查询结果</returns>
  489. public object ExecuteScalar(string commandText, bool isCloseConnection)
  490. {
  491. return this.ExecuteScalar(commandText, CommandType.Text, isCloseConnection);
  492. }
  493. /// <summary>
  494. /// 重载-返回第一行第一列结果的数据查询(适应存储过程调用需求)
  495. /// </summary>
  496. /// <param name="commandText">查询命令</param>
  497. /// <param name="commandType">查询命令类型</param>
  498. /// <param name="isCloseConnection">是否关闭数据连结,true: 关闭,false: 不关闭</param>
  499. /// <returns>返回查询结果</returns>
  500. public object ExecuteScalar(string commandText, CommandType commandType, bool isCloseConnection)
  501. {
  502. object rows;
  503. this.sqlCommand.CommandText = commandText;
  504. this.sqlCommand.CommandType = commandType;
  505. this.ConnectionOpen();
  506. try
  507. {
  508. rows = this.sqlCommand.ExecuteScalar();
  509. }
  510. finally
  511. {
  512. if (isCloseConnection)
  513. {
  514. this.ConnectionClose();
  515. }
  516. }
  517. return rows;
  518. }
  519. /// <summary>
  520. /// 获得物理路径下的链接字符串
  521. /// </summary>
  522. /// <param name="connectionString"></param>
  523. /// <returns></returns>
  524. private string GetConnectionPath(string connectionString)
  525. {
  526. string[] strs = connectionString.Split(new char[] { '{', '}' });
  527. strs[1] = HttpContext.Current.Server.MapPath(strs[1]);
  528. return (strs[0] + strs[1] + strs[2]);
  529. }
  530. /// <summary>
  531. /// 获得数据库连接字符串
  532. /// </summary>
  533. /// <param name="ModuleName">模块名称</param>
  534. /// <returns></returns>
  535. public string GetDataLink(string ModuleName)
  536. {
  537. if (this.links != null)
  538. {
  539. if (ModuleName == string.Empty)
  540. {
  541. ModuleName = "default";
  542. }
  543. return this.links[ModuleName].ToString();
  544. }
  545. if (ModuleName == string.Empty)
  546. {
  547. return sqlDefaultConnectionString;
  548. }
  549. return ConfigurationManager.AppSettings[ModuleName + "ConnectionString"].Trim();
  550. }
  551. /// <summary>
  552. ///
  553. /// </summary>
  554. private void GetLinkObject()
  555. {
  556. if (HttpContext.Current.Session["uLinks"] != null)
  557. {
  558. this.links = HttpContext.Current.Session["uLinks"] as Hashtable;
  559. }
  560. }
  561. /// <summary>
  562. /// 提取参数值
  563. /// </summary>
  564. /// <param name="paramName">参数名称</param>
  565. /// <returns>返回执行结果状态码</returns>
  566. public object GetParameter(string paramName)
  567. {
  568. if (this.sqlCommand.Parameters.Contains(paramName))
  569. {
  570. return this.sqlCommand.Parameters[paramName].Value;
  571. }
  572. return null;
  573. }
  574. /// <summary>
  575. /// 将DataTable添加到DataSet中
  576. /// </summary>
  577. /// <param name="dataSet">DataSet对象</param>
  578. /// <param name="tableNames">表名数组</param>
  579. public void LoadDataSet(DataSet dataSet, string[] tableNames)
  580. {
  581. for (int i = 0; i < tableNames.Length; i++)
  582. {
  583. this.LoadDataSet(dataSet, tableNames[i]);
  584. }
  585. }
  586. /// <summary>
  587. /// 将DataTable添加到DataSet中
  588. /// </summary>
  589. /// <param name="dataSet">DataSet对象</param>
  590. /// <param name="tableName">表名</param>
  591. public void LoadDataSet(DataSet dataSet, string tableName)
  592. {
  593. dataSet.Tables.Add(tableName);
  594. }
  595. /// <summary>
  596. /// 修改参数值
  597. /// </summary>
  598. /// <param name="p_strParamName">参数名称</param>
  599. /// <param name="p_objValue">参数值</param>
  600. public void ModifyParameter(string paramName, object pValue)
  601. {
  602. if ((this.sqlCommand.Parameters[paramName].OleDbType == OleDbType.Guid) && (pValue.GetType() == typeof(sbyte)))
  603. {
  604. pValue = new Guid(pValue.ToString());
  605. }
  606. if (-1 != this.sqlCommand.Parameters.IndexOf(paramName))
  607. {
  608. this.sqlCommand.Parameters[paramName].Value = pValue;
  609. }
  610. }
  611. /// <summary>
  612. /// 移除所有的参数
  613. /// </summary>
  614. public void RemoveAllParameters()
  615. {
  616. this.sqlCommand.Parameters.Clear();
  617. }
  618. /// <summary>
  619. /// 移除参数
  620. /// </summary>
  621. /// <param name="p_strParamName">参数名称</param>
  622. public void RemoveParameter(string paramName)
  623. {
  624. this.sqlCommand.Parameters.RemoveAt(paramName);
  625. }
  626. /// <summary>
  627. /// 回滚事务处理
  628. /// </summary>
  629. /// <returns>返回执行结果状态码</returns>
  630. public void RollbackTransaction()
  631. {
  632. try
  633. {
  634. this.sqlTransaction.Rollback();
  635. }
  636. finally
  637. {
  638. this.ConnectionClose();
  639. }
  640. }
  641. }
  642. }