代码:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Text;
  6. using System.Data;
  7. using System.Collections;
  8. using MySql.Data.MySqlClient;
  9. using MySql.Data.Types;
  10. using System.Configuration;
  11. using System.IO;
  12.  
  13. namespace ADT.TuDou.DALProfile
  14. {
  15. public class MySqlDBHelper
  16. {
  17. //Get the database connectionstring, which are static variables and readonly, all project documents can be used directly, but can not modify it
  18. //the database connectionString
  19. //public static string ConnectionStringManager
  20. //{
  21. // get { return connectionStringManager; }
  22. //}
  23.  
  24. //This connectionString for the local test
  25. //public static readonly string connectionStringManager = System.Configuration.ConfigurationManager.ConnectionStrings["MySQLConnString"].ConnectionString;
  26. //ConfigurationManager.ConnectionStrings["MySQLConnString"].ConnectionString;
  27.  
  28. //hashtable to store the parameter information, the hash table can store any type of argument
  29. //Here the hashtable is static types of static variables, since it is static, that is a definition of global use.
  30. //All parameters are using this hash table, how to ensure that others in the change does not affect their time to read it
  31. //Before ,the method can use the lock method to lock the table, does not allow others to modify.when it has readed then unlocked table.
  32. //Now .NET provides a HashTable's Synchronized methods to achieve the same function, no need to manually lock, completed directly by the system framework
  33. private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
  34.  
  35. /// <summary>
  36. /// Execute a SqlCommand command that does not return value, by appointed and specified connectionstring
  37. /// The parameter list using parameters that in array forms
  38. /// </summary>
  39. /// <remarks>
  40. /// Usage example:
  41. /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure,
  42. /// "PublishOrders", new MySqlParameter("@prodid", 24));
  43. /// </remarks>
  44. /// <param name="connectionString">a valid database connectionstring</param>
  45. /// <param name="cmdType">MySqlCommand command type (stored procedures, T-SQL statement, and so on.) </param>
  46. /// <param name="cmdText">stored procedure name or T-SQL statement</param>
  47. /// <param name="commandParameters">MySqlCommand to provide an array of parameters used in the list</param>
  48. /// <returns>Returns a value that means number of rows affected/returns>
  49. public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  50. {
  51. MySqlCommand cmd = new MySqlCommand();
  52.  
  53. using (MySqlConnection conn = new MySqlConnection(connectionString))
  54. {
  55. PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
  56. int val = cmd.ExecuteNonQuery();
  57. cmd.Parameters.Clear();
  58. return val;
  59. }
  60. }
  61.  
  62. /// <summary>
  63. /// Execute a SqlCommand command that does not return value, by appointed and specified connectionstring
  64. /// The parameter list using parameters that in array forms
  65. /// </summary>
  66. /// <remarks>
  67. /// Usage example:
  68. /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure,
  69. /// "PublishOrders", new MySqlParameter("@prodid", 24));
  70. /// </remarks>
  71. /// <param name="cmdType">MySqlCommand command type (stored procedures, T-SQL statement, and so on.) </param>
  72. /// <param name="connectionString">a valid database connectionstring</param>
  73. /// <param name="cmdText">stored procedure name or T-SQL statement</param>
  74. /// <param name="commandParameters">MySqlCommand to provide an array of parameters used in the list</param>
  75. /// <returns>Returns true or false </returns>
  76. public static bool ExecuteNonQuery(CommandType cmdType, string connectionString, string cmdText, params MySqlParameter[] commandParameters)
  77. {
  78. MySqlCommand cmd = new MySqlCommand();
  79.  
  80. using (MySqlConnection conn = new MySqlConnection(connectionString))
  81. {
  82. PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
  83. try
  84. {
  85. int val = cmd.ExecuteNonQuery();
  86. return true;
  87. }
  88. catch
  89. {
  90. return false;
  91. }
  92. finally
  93. {
  94. cmd.Parameters.Clear();
  95. }
  96. }
  97. }
  98. /// <summary>
  99. /// Execute a SqlCommand command that does not return value, by appointed and specified connectionstring
  100. /// Array of form parameters using the parameter list
  101. /// </summary>
  102. /// <param name="conn">connection</param>
  103. /// <param name="cmdType">MySqlCommand command type (stored procedures, T-SQL statement, and so on.)</param>
  104. /// <param name="cmdText">stored procedure name or T-SQL statement</param>
  105. /// <param name="commandParameters">MySqlCommand to provide an array of parameters used in the list</param>
  106. /// <returns>Returns a value that means number of rows affected</returns>
  107. public static int ExecuteNonQuery(MySqlConnection conn, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  108. {
  109. MySqlCommand cmd = new MySqlCommand();
  110. PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
  111. int val = cmd.ExecuteNonQuery();
  112. cmd.Parameters.Clear();
  113. return val;
  114. }
  115.  
  116. /// <summary>
  117. /// Execute a SqlCommand command that does not return value, by appointed and specified connectionstring
  118. /// Array of form parameters using the parameter list
  119. /// </summary>
  120. /// <param name="conn">sql Connection that has transaction</param>
  121. /// <param name="cmdType">SqlCommand command type (stored procedures, T-SQL statement, and so on.)</param>
  122. /// <param name="cmdText">stored procedure name or T-SQL statement</param>
  123. /// <param name="commandParameters">MySqlCommand to provide an array of parameters used in the list</param>
  124. /// <returns>Returns a value that means number of rows affected </returns>
  125. public static int ExecuteNonQuery(MySqlTransaction trans, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  126. {
  127. MySqlCommand cmd = new MySqlCommand();
  128. PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
  129. int val = cmd.ExecuteNonQuery();
  130. cmd.Parameters.Clear();
  131. return val;
  132. }
  133.  
  134. /// <summary>
  135. /// Call method of sqldatareader to read data
  136. /// </summary>
  137. /// <param name="connectionString">connectionstring</param>
  138. /// <param name="cmdType">command type, such as using stored procedures: CommandType.StoredProcedure</param>
  139. /// <param name="cmdText">stored procedure name or T-SQL statement</param>
  140. /// <param name="commandParameters">parameters</param>
  141. /// <returns>SqlDataReader type of data collection</returns>
  142. public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  143. {
  144. MySqlCommand cmd = new MySqlCommand();
  145. MySqlConnection conn = new MySqlConnection(connectionString);
  146.  
  147. // we use a try/catch here because if the method throws an exception we want to
  148. // close the connection throw code, because no datareader will exist, hence the
  149. // commandBehaviour.CloseConnection will not work
  150. try
  151. {
  152. PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
  153. MySqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  154. cmd.Parameters.Clear();
  155. return rdr;
  156. }
  157. catch
  158. {
  159. conn.Close();
  160. throw;
  161. }
  162. }
  163.  
  164. /// <summary>
  165. /// use the ExectueScalar to read a single result
  166. /// </summary>
  167. /// <param name="connectionString">connectionstring</param>
  168. /// <param name="cmdType">command type, such as using stored procedures: CommandType.StoredProcedure</param>
  169. /// <param name="cmdText">stored procedure name or T-SQL statement</param>
  170. /// <param name="commandParameters">parameters</param>
  171. /// <returns>a value in object type</returns>
  172. public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  173. {
  174. MySqlCommand cmd = new MySqlCommand();
  175.  
  176. using (MySqlConnection connection = new MySqlConnection(connectionString))
  177. {
  178. PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
  179. object val = cmd.ExecuteScalar();
  180. cmd.Parameters.Clear();
  181. return val;
  182. }
  183. }
  184. public static DataTable ExecuteDataTable(string connectionString, string cmdText, params MySqlParameter[] commandParameters)
  185. {
  186. DataSet retSet = new DataSet();
  187. using (MySqlDataAdapter msda = new MySqlDataAdapter(cmdText, connectionString))
  188. {
  189. msda.Fill(retSet);
  190. }
  191. if (retSet != null && retSet.Tables.Count > )
  192. {
  193. return retSet.Tables[];
  194. }
  195. return null;
  196. }
  197. public static DataTable ExecuteDataTable(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  198. {
  199. DataSet retSet = new DataSet();
  200. MySqlCommand cmd = new MySqlCommand();
  201. using (MySqlConnection connection = new MySqlConnection(connectionString))
  202. {
  203. PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
  204. using (MySqlDataAdapter msda = new MySqlDataAdapter(cmd))
  205. {
  206. msda.Fill(retSet);
  207. }
  208. }
  209. if (retSet != null && retSet.Tables.Count > )
  210. {
  211. return retSet.Tables[];
  212. }
  213. return null;
  214. }
  215. public static DataSet GetDataSet(string connectionString, string cmdText, params MySqlParameter[] commandParameters)
  216. {
  217. DataSet retSet = new DataSet();
  218. using (MySqlDataAdapter msda = new MySqlDataAdapter(cmdText, connectionString))
  219. {
  220. msda.Fill(retSet);
  221. }
  222. return retSet;
  223. }
  224.  
  225. /// <summary>
  226. /// cache the parameters in the HashTable
  227. /// </summary>
  228. /// <param name="cacheKey">hashtable key name</param>
  229. /// <param name="commandParameters">the parameters that need to cached</param>
  230. public static void CacheParameters(string cacheKey, params MySqlParameter[] commandParameters)
  231. {
  232. parmCache[cacheKey] = commandParameters;
  233. }
  234.  
  235. /// <summary>
  236. /// get parameters in hashtable by cacheKey
  237. /// </summary>
  238. /// <param name="cacheKey">hashtable key name</param>
  239. /// <returns>the parameters</returns>
  240. public static MySqlParameter[] GetCachedParameters(string cacheKey)
  241. {
  242. MySqlParameter[] cachedParms = (MySqlParameter[])parmCache[cacheKey];
  243.  
  244. if (cachedParms == null)
  245. return null;
  246.  
  247. MySqlParameter[] clonedParms = new MySqlParameter[cachedParms.Length];
  248.  
  249. for (int i = , j = cachedParms.Length; i < j; i++)
  250. clonedParms[i] = (MySqlParameter)((ICloneable)cachedParms[i]).Clone();
  251.  
  252. return clonedParms;
  253. }
  254.  
  255. /// <summary>
  256. ///Prepare parameters for the implementation of the command
  257. /// </summary>
  258. /// <param name="cmd">mySqlCommand command</param>
  259. /// <param name="conn">database connection that is existing</param>
  260. /// <param name="trans">database transaction processing </param>
  261. /// <param name="cmdType">SqlCommand command type (stored procedures, T-SQL statement, and so on.) </param>
  262. /// <param name="cmdText">Command text, T-SQL statements such as Select * from Products</param>
  263. /// <param name="cmdParms">return the command that has parameters</param>
  264. private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms)
  265. {
  266. if (conn.State != ConnectionState.Open)
  267. conn.Open();
  268.  
  269. cmd.Connection = conn;
  270. cmd.CommandText = cmdText;
  271.  
  272. if (trans != null)
  273. cmd.Transaction = trans;
  274.  
  275. cmd.CommandType = cmdType;
  276.  
  277. if (cmdParms != null)
  278. foreach (MySqlParameter parm in cmdParms)
  279. cmd.Parameters.Add(parm);
  280. }
  281. #region parameters
  282. /// <summary>
  283. /// Set parameters
  284. /// </summary>
  285. /// <param name="ParamName">parameter name</param>
  286. /// <param name="DbType">data type</param>
  287. /// <param name="Size">type size</param>
  288. /// <param name="Direction">input or output</param>
  289. /// <param name="Value">set the value</param>
  290. /// <returns>Return parameters that has been assigned</returns>
  291. public static MySqlParameter CreateParam(string ParamName, MySqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
  292. {
  293. MySqlParameter param;
  294.  
  295. if (Size > )
  296. {
  297. param = new MySqlParameter(ParamName, DbType, Size);
  298. }
  299. else
  300. {
  301.  
  302. param = new MySqlParameter(ParamName, DbType);
  303. }
  304.  
  305. param.Direction = Direction;
  306. if (!(Direction == ParameterDirection.Output && Value == null))
  307. {
  308. param.Value = Value;
  309. }
  310.  
  311. return param;
  312. }
  313.  
  314. /// <summary>
  315. /// set Input parameters
  316. /// </summary>
  317. /// <param name="ParamName">parameter names, such as:@ id </param>
  318. /// <param name="DbType">parameter types, such as: MySqlDbType.Int</param>
  319. /// <param name="Size">size parameters, such as: the length of character type for the 100</param>
  320. /// <param name="Value">parameter value to be assigned</param>
  321. /// <returns>Parameters</returns>
  322. public static MySqlParameter CreateInParam(string ParamName, MySqlDbType DbType, int Size, object Value)
  323. {
  324. return CreateParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
  325. }
  326.  
  327. /// <summary>
  328. /// Output parameters
  329. /// </summary>
  330. /// <param name="ParamName">parameter names, such as:@ id</param>
  331. /// <param name="DbType">parameter types, such as: MySqlDbType.Int</param>
  332. /// <param name="Size">size parameters, such as: the length of character type for the 100</param>
  333. /// <param name="Value">parameter value to be assigned</param>
  334. /// <returns>Parameters</returns>
  335. public static MySqlParameter CreateOutParam(string ParamName, MySqlDbType DbType, int Size)
  336. {
  337. return CreateParam(ParamName, DbType, Size, ParameterDirection.Output, null);
  338. }
  339.  
  340. /// <summary>
  341. /// Set return parameter value
  342. /// </summary>
  343. /// <param name="ParamName">parameter names, such as:@ id</param>
  344. /// <param name="DbType">parameter types, such as: MySqlDbType.Int</param>
  345. /// <param name="Size">size parameters, such as: the length of character type for the 100</param>
  346. /// <param name="Value">parameter value to be assigned<</param>
  347. /// <returns>Parameters</returns>
  348. public static MySqlParameter CreateReturnParam(string ParamName, MySqlDbType DbType, int Size)
  349. {
  350. return CreateParam(ParamName, DbType, Size, ParameterDirection.ReturnValue, null);
  351. }
  352.  
  353. /// <summary>
  354. /// Generate paging storedProcedure parameters
  355. /// </summary>
  356. /// <param name="CurrentIndex">CurrentPageIndex</param>
  357. /// <param name="PageSize">pageSize</param>
  358. /// <param name="WhereSql">query Condition</param>
  359. /// <param name="TableName">tableName</param>
  360. /// <param name="Columns">columns to query</param>
  361. /// <param name="Sort">sort</param>
  362. /// <returns>MySqlParameter collection</returns>
  363. public static MySqlParameter[] GetPageParm(int CurrentIndex, int PageSize, string WhereSql, string TableName, string Columns, Hashtable Sort)
  364. {
  365. MySqlParameter[] parm = {
  366. MySqlDBHelper.CreateInParam("@CurrentIndex", MySqlDbType.Int32, , CurrentIndex ),
  367. MySqlDBHelper.CreateInParam("@PageSize", MySqlDbType.Int32, , PageSize ),
  368. MySqlDBHelper.CreateInParam("@WhereSql", MySqlDbType.VarChar, , WhereSql ),
  369. MySqlDBHelper.CreateInParam("@TableName", MySqlDbType.VarChar, , TableName ),
  370. MySqlDBHelper.CreateInParam("@Column", MySqlDbType.VarChar, , Columns ),
  371. MySqlDBHelper.CreateInParam("@Sort", MySqlDbType.VarChar, , GetSort(Sort) ),
  372. MySqlDBHelper.CreateOutParam("@RecordCount", MySqlDbType.Int32, )
  373. };
  374. return parm;
  375. }
  376. /// <summary>
  377. /// Statistics data that in table
  378. /// </summary>
  379. /// <param name="TableName">table name</param>
  380. /// <param name="Columns">Statistics column</param>
  381. /// <param name="WhereSql">conditions</param>
  382. /// <returns>Set of parameters</returns>
  383. public static MySqlParameter[] GetCountParm(string TableName, string Columns, string WhereSql)
  384. {
  385. MySqlParameter[] parm = {
  386. MySqlDBHelper.CreateInParam("@TableName", MySqlDbType.VarChar, , TableName ),
  387. MySqlDBHelper.CreateInParam("@CountColumn", MySqlDbType.VarChar, , Columns ),
  388. MySqlDBHelper.CreateInParam("@WhereSql", MySqlDbType.VarChar, , WhereSql ),
  389. MySqlDBHelper.CreateOutParam("@RecordCount", MySqlDbType.Int32, )
  390. };
  391. return parm;
  392. }
  393. /// <summary>
  394. /// Get the sql that is Sorted
  395. /// </summary>
  396. /// <param name="sort"> sort column and values</param>
  397. /// <returns>SQL sort string</returns>
  398. private static string GetSort(Hashtable sort)
  399. {
  400. string str = "";
  401. int i = ;
  402. if (sort != null && sort.Count > )
  403. {
  404. foreach (DictionaryEntry de in sort)
  405. {
  406. i++;
  407. str += de.Key + " " + de.Value;
  408. if (i != sort.Count)
  409. {
  410. str += ",";
  411. }
  412. }
  413. }
  414. return str;
  415. }
  416.  
  417. /// <summary>
  418. /// execute a trascation include one or more sql sentence(author:donne yin)
  419. /// </summary>
  420. /// <param name="connectionString"></param>
  421. /// <param name="cmdType"></param>
  422. /// <param name="cmdTexts"></param>
  423. /// <param name="commandParameters"></param>
  424. /// <returns>execute trascation result(success: true | fail: false)</returns>
  425. public static bool ExecuteTransaction(string connectionString, CommandType cmdType, string[] cmdTexts, params MySqlParameter[][] commandParameters)
  426. {
  427. MySqlConnection myConnection = new MySqlConnection(connectionString); //get the connection object
  428. myConnection.Open(); //open the connection
  429. MySqlTransaction myTrans = myConnection.BeginTransaction(); //begin a trascation
  430. MySqlCommand cmd = new MySqlCommand();
  431. cmd.Connection = myConnection;
  432. cmd.Transaction = myTrans;
  433.  
  434. try
  435. {
  436. for (int i = ; i < cmdTexts.Length; i++)
  437. {
  438. PrepareCommand(cmd, myConnection, null, cmdType, cmdTexts[i], commandParameters[i]);
  439. cmd.ExecuteNonQuery();
  440. cmd.Parameters.Clear();
  441. }
  442. myTrans.Commit();
  443. }
  444. catch
  445. {
  446. myTrans.Rollback();
  447. return false;
  448. }
  449. finally
  450. {
  451. myConnection.Close();
  452. }
  453. return true;
  454. }
  455. #endregion
  456.  
  457. /// <summary>
  458. /// 分页获得数据
  459. /// </summary>
  460. /// <param name="PageIndex">页码</param>
  461. /// <param name="PageSize">每页显示数据量</param>
  462. /// <param name="TableName">表名,可以是自定义查询集合</param>
  463. /// <param name="_Where">条件语句,需要以where开头</param>
  464. /// <param name="OrderStr">排序语句</param>
  465. /// <param name="RecordCount">记录数 输出参数</param>
  466. /// <param name="PageCount">总页数 输出参数</param>
  467. /// <returns></returns>
  468. public static DataTable GetDataTableByPage(string connectionString, int PageIndex, int PageSize, string TableName, string _Where, string OrderStr, out int RecordCount, out int PageCount)
  469. {
  470. string selectText = @"SELECT * FROM " + TableName + " " + _Where + " " + OrderStr + " LIMIT " + ((PageIndex - ) * PageSize).ToString() + "," + PageSize.ToString();
  471. string countText = @"SELECT count(*) FROM " + TableName + " " + _Where;
  472.  
  473. DataSet retSet = new DataSet();
  474. using (MySqlDataAdapter msda = new MySqlDataAdapter(selectText, connectionString))
  475. {
  476. msda.Fill(retSet);
  477. }
  478. object objCount = ExecuteScalar(connectionString, CommandType.Text, countText, null);
  479.  
  480. RecordCount = ;
  481. PageCount = ;
  482. if (objCount != null && objCount != DBNull.Value)
  483. {
  484. RecordCount = Convert.ToInt32(objCount);
  485. PageCount = (RecordCount / PageSize) + ((RecordCount % PageSize) > ? : );
  486. }
  487. if (retSet != null && retSet.Tables.Count > )
  488. {
  489. return retSet.Tables[];
  490. }
  491. return null;
  492. }
  493. /// <summary>
  494. /// 分页获得数据
  495. /// </summary>
  496. /// <param name="PageIndex">页码</param>
  497. /// <param name="PageSize">每页显示数据量</param>
  498. /// <param name="TableName">表名,可以是自定义查询集合</param>
  499. /// <param name="Fields">字段名</param>
  500. /// <param name="_Where">条件语句,需要以where开头</param>
  501. /// <param name="OrderStr">排序语句</param>
  502. /// <param name="RecordCount">记录数 输出参数</param>
  503. /// <param name="PageCount">总页数 输出参数</param>
  504. /// <returns></returns>
  505. public static DataTable GetDataTableByPage(string connectionString, int PageIndex, int PageSize, string TableName, string Fields, string _Where, string OrderStr, out int RecordCount, out int PageCount)
  506. {
  507. string selectText = @"SELECT " + Fields + " FROM " + TableName + " " + _Where + " " + OrderStr + " LIMIT " + ((PageIndex - ) * PageSize).ToString() + "," + PageSize.ToString();
  508. string countText = @"SELECT COUNT(*) FROM " + TableName + " " + _Where;
  509.  
  510. DataSet retSet = new DataSet();
  511. using (MySqlDataAdapter msda = new MySqlDataAdapter(selectText, connectionString))
  512. {
  513. msda.Fill(retSet);
  514. }
  515. object objCount = ExecuteScalar(connectionString, CommandType.Text, countText, null);
  516.  
  517. RecordCount = ;
  518. PageCount = ;
  519. if (objCount != null && objCount != DBNull.Value)
  520. {
  521. RecordCount = Convert.ToInt32(objCount);
  522. PageCount = (RecordCount / PageSize) + ((RecordCount % PageSize) > ? : );
  523. }
  524. if (retSet != null && retSet.Tables.Count > )
  525. {
  526. return retSet.Tables[];
  527. }
  528. return null;
  529. }
  530.  
  531. /// <summary>
  532. /// 分页获得数据
  533. /// </summary>
  534. /// <param name="PageIndex">页码</param>
  535. /// <param name="PageSize">每页显示数据量</param>
  536. /// <param name="TableName">表名,可以是自定义查询集合</param>
  537. /// <param name="Fields">字段名</param>
  538. /// <param name="_Where">条件语句,需要以where开头</param>
  539. /// <param name="OrderStr">排序语句</param>
  540. /// <param name="RecordCount">记录数 输出参数</param>
  541. /// <param name="PageCount">总页数 输出参数</param>
  542. /// <returns></returns>
  543. public static DataTable GetDataTableByPage(string connectionString, int PageIndex, int PageSize, string TableName, string Fields, string _Where, string OrderStr, out int RecordCount, out int PageCount, params MySqlParameter[] commandParameters)
  544. {
  545. string selectText = @"SELECT " + Fields + " FROM " + TableName + " " + _Where + " " + OrderStr + " LIMIT " + ((PageIndex - ) * PageSize).ToString() + "," + PageSize.ToString();
  546. string countText = @"SELECT COUNT(*) FROM " + TableName + " " + _Where;
  547.  
  548. DataSet retSet = new DataSet();
  549. MySqlCommand cmd = new MySqlCommand();
  550. using (MySqlConnection connection = new MySqlConnection(connectionString))
  551. {
  552. PrepareCommand(cmd, connection, null, CommandType.Text, selectText, commandParameters);
  553. using (MySqlDataAdapter msda = new MySqlDataAdapter(cmd))
  554. {
  555. msda.Fill(retSet);
  556. }
  557. }
  558.  
  559. object objCount = ExecuteScalar(connectionString, CommandType.Text, countText, commandParameters);
  560.  
  561. RecordCount = ;
  562. PageCount = ;
  563. if (objCount != null && objCount != DBNull.Value)
  564. {
  565. RecordCount = Convert.ToInt32(objCount);
  566. PageCount = (RecordCount / PageSize) + ((RecordCount % PageSize) > ? : );
  567. }
  568. if (retSet != null && retSet.Tables.Count > )
  569. {
  570. return retSet.Tables[];
  571. }
  572. return null;
  573. }
  574. }
  575. }

需要下载一个MySql.Data.dll文件

连接字符串格式:<add name="MySQLConnString" connectionString="server=******; user id=******j; password=******; database=******"/>

注意:connectionString 不是 Data Source了,是server。

MySqlDBHelper的更多相关文章

  1. MySqlDBHelper数据库连接

    这里是本人在工作中用到,希望给大家帮助 public class MySqlDBHelper { //获取一个记录器 private static readonly log4net.ILog log ...

  2. MySQL数据库工具类之——DataTable批量加入MySQL数据库(Net版)

    MySQL数据库工具类之——DataTable批量加入数据库(Net版),MySqlDbHelper通用类希望能对大家有用,代码如下: using MySql.Data.MySqlClient; us ...

  3. MySQL实战积累

    IFNULL(expr1,expr2)的用法:假如expr1不为NULL,则IFNULL()的返回值为   expr1; 否则其返回值为expr2. 索引:http://www.cnblogs.com ...

  4. TreeView绑定无限层级关系类

    protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Bind_TV(TreeView1.Nodes); ...

  5. APNs功能之Node.js和Mysql应用总结

    APNs功能之Node.js和Mysql应用总结 这篇文档主要是总结Node.js和Mysql的学习心得体会.当然也可以看作是此前所写的消息推送服务的续篇. 简单描述下应用背景,我们的应用需要实现苹果 ...

  6. Spring IOC以及三种注入方式

    IOC是spring的最基础部分,也是核心模块,Spring的其他组件模块和应用开发都是以它为基础的.IOC把spring的面向接口编程和松耦合的思想体现的淋漓尽致. IOC概念 IOC(Invers ...

  7. C# 各种帮助类大全

    前言 此篇专门记录一些常见DB帮助类及其他帮助类,以便使用时不用重复造轮子. DBHelper帮助类 ①首当其冲的就是Sql Server帮助类,创建名为DbHelperSQL 的类 ,全部代码如下: ...

  8. C#工具:Ado.Net SqlServer数据库 MySql数据库

    数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库. SqlServer调用数据库 using System; using System.Coll ...

  9. MySQL5.7: sql script demo

    -- MyISAM Foreign Keys显示不了外键,MyISAM此为5.0 以下版本使用 InnoDB 为5.0以上版本使用 drop table IF EXISTS city; CREATE ...

随机推荐

  1. 爸妈才是最好的避孕药--------"北大状元拉黑父母事件的一些感想"

    今天看了这么一篇文章,地址:  http://mini.eastday.com/mobile/180131180318786.html <北大状元拉黑父母6年:你敢恨爸妈,可你敢原谅他们吗?&g ...

  2. BZOJ3293: [Cqoi2011]分金币(数学)

    3293: [Cqoi2011]分金币 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1596  Solved: 969[Submit][Status ...

  3. DataTable快速定制之Expression属性表达式

    本文旨在讨论使用DataColumn.Expression属性定制列,高手绕过. 这里只介绍两个经典的场景,抛砖引玉其他更多功能待各位读者自己发现吧! 场景一: DataTable里有两个列分别为每种 ...

  4. Phonegap 开发环境搭建

    以Android为例介绍Phonegap开发环境搭建 一. 软件下载 1. JDK 8 下载 http://www.oracle.com/technetwork/java/javase/downloa ...

  5. 关于Class.getResource和ClassLoader.getResource的路径问题(转)

    参考博客:http://www.cnblogs.com/yejg1212/p/3270152.html Class.getResource(String path) 当path以/开头,如/a/b/c ...

  6. mac电脑安装selenium 记录

    1.使用终端去命令安装 sudo easy_install selenium 参考:https://www.cnblogs.com/nichoc/p/5543654.html 2.听说驱动放在 /us ...

  7. 学习笔记之Python 3 教程

    Python 3 教程 http://www.runoob.com/python3/python3-tutorial.html Python的3.0版本,常被称为Python 3000,或简称Py3k ...

  8. Jquery 插件PrintArea 打印指定的网页区域

    Jquery 插件PrintArea 打印指定的网页区域 需要下载jquery 和printarea.js插件 PrintArea.Js插件,可以打印整个网页中某个指定的区域. $("打印区 ...

  9. 图片采集器_PHP

    现在国内模仿“pinterest”的越来越多了,之前我做过一个基于chrome浏览器上的一个“图片采集工具”,类似于“花瓣网“那样的,初期我觉得挺简单,后来做起来发现还是挺复杂的,特别是整合到你自己的 ...

  10. JavaScript之深拷贝&浅拷贝

    深拷贝&浅拷贝,说起来都明白,但是说不出所以然.今天就系统的整理下思绪,一点点的将其分析出所以然 废话不多说 浅拷贝 简单的说就是一个值引用,学生时代接触过编程的人都应该了解过指针,浅拷贝可以 ...