MySQLDBHandler.cs 25 KB

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