自己封装的ASP.NET的MYSQL的数据库操作类

  1. /** 
  2.  * 作者:牛腩 
  3.  * 创建时间:2010年3月7日17时35分 
  4.  * 类说明:对MYSQL数据库的操作类 
  5.  */   
  6. using System;  
  7. using System.Data;  
  8. using MySql.Data.MySqlClient;  
  9.   
  10.   
  11. namespace Niunan.BYLW.Utility  
  12. {  
  13.     /// <summary>对MYSQL数据库的操作类  
  14.     ///   
  15.     /// </summary>  
  16.     public class MYSQLHelper  
  17.     {  
  18.         private MySqlConnection conn = null;  
  19.         private MySqlCommand cmd = null;  
  20.         private MySqlDataReader sdr = null;  
  21.   
  22.   
  23.         public MYSQLHelper()  
  24.         {  
  25.             //string connStr = WebConfigurationManager.ConnectionStrings["connStr"].ToString();  
  26.             string connStr = "server=localhost;database=test;uid=root;pwd=123456;charset=utf8";  
  27.             conn = new MySqlConnection(connStr);  
  28.         }  
  29.   
  30.   
  31.         /// <summary>创建Command对象  
  32.         ///   
  33.         /// </summary>  
  34.         /// <param name="sql">SQL语句</param>  
  35.         public void CreateCommand(string sql)  
  36.         {  
  37.             conn.Open();  
  38.             cmd = new MySqlCommand(sql, conn);  
  39.         }  
  40.   
  41.   
  42.         /// <summary>添加参数  
  43.         ///   
  44.         /// </summary>  
  45.         /// <param name="paramName">参数名称</param>  
  46.         /// <param name="value">值</param>  
  47.         public void AddParameter(string paramName, object value)  
  48.         {  
  49.             cmd.Parameters.Add(new MySqlParameter(paramName, value));  
  50.         }  
  51.   
  52.   
  53.         /// <summary>执行不带参数的增删改SQL语句  
  54.         ///    
  55.         /// </summary>  
  56.         /// <param name="cmdText">增删改SQL语句</param>  
  57.         /// <param name="ct">命令类型</param>  
  58.         /// <returns></returns>  
  59.         public bool ExecuteNonQuery()  
  60.         {  
  61.             int res;  
  62.             try  
  63.             {  
  64.                 res = cmd.ExecuteNonQuery();  
  65.                 if (res > 0)  
  66.                 {  
  67.                     return true;  
  68.                 }  
  69.             }  
  70.             catch (Exception ex)  
  71.             {  
  72.                 throw ex;  
  73.             }  
  74.             finally  
  75.             {  
  76.                 if (conn.State == ConnectionState.Open)  
  77.                 {  
  78.                     conn.Close();  
  79.                 }  
  80.             }  
  81.             return false;  
  82.         }  
  83.   
  84.   
  85.         /// <summary>执行查询SQL语句  
  86.         ///    
  87.         /// </summary>  
  88.         /// <param name="cmdText">查询SQL语句</param>  
  89.         /// <returns></returns>  
  90.         public DataTable ExecuteQuery()  
  91.         {  
  92.             DataTable dt = new DataTable();  
  93.             using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))  
  94.             {  
  95.                 dt.Load(sdr);  
  96.             }  
  97.             return dt;  
  98.         }  
  99.   
  100.   
  101.         /// <summary>返回查询SQL语句查询出的结果的第一行第一列的值  
  102.         ///   
  103.         /// </summary>  
  104.         /// <returns></returns>  
  105.         public string ExecuteScalar()  
  106.         {  
  107.             string res = "";  
  108.             try  
  109.             {  
  110.                 object obj = cmd.ExecuteScalar();  
  111.                 if (obj != null)  
  112.                 {  
  113.                     res = obj.ToString();  
  114.                 }  
  115.             }  
  116.             catch (Exception ex)  
  117.             {  
  118.                 throw ex;  
  119.             }  
  120.             finally  
  121.             {  
  122.                 if (conn.State == ConnectionState.Open)  
  123.                 {  
  124.                     conn.Close();  
  125.                 }  
  126.             }  
  127.             return res;  
  128.         }  
  129.   
  130.   
  131.     }  
  132. }  

都是把那个SQLITEHelper的操作类搬过来的,改了MySqlConnection等变量名,对MYSQL来说经常会出现中文乱码,经实验,解决方法:


① 用PHPMYADMIN建立MYSQL数据库的时候记得选择UTF-8的编码


② 在上面的数据库操作类中的连接字符串中记得加上charset=utf8


这样用上面的操作类来插入中文就不会出现乱码了。

 

 
posted @ 2014-08-17 11:29  Ranran  阅读(645)  评论(1编辑  收藏  举报