1. 程式人生 > >ASP.NET 操作MySQL資料庫的方法說明

ASP.NET 操作MySQL資料庫的方法說明

using System;
using System.Data;
using System.Diagnostics;
using System.Collections.Generic;
using MySql.Data.MySqlClient;

namespace System
{
 /// <summary>
 /// Description of MySqlDBUtil.
 /// </summary>
 public class MySqlDBUtil
 {
        private static String connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString.ToString();
  private MySqlDBUtil()
  {
  }
  
  //執行單條插入語句,並返回id,不需要返回id的用ExceuteNonQuery執行。
  public static int ExecuteInsert(string sql,MySqlParameter[] parameters)
        {
         //Debug.WriteLine(sql);
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                MySqlCommand cmd = new MySqlCommand(sql, connection);
                try
                {
                    connection.Open();
                    if(parameters!=null)cmd.Parameters.AddRange(parameters);
                    cmd.ExecuteNonQuery();
                    cmd.CommandText = @"select LAST_INSERT_ID()";
                    int value = Int32.Parse(cmd.ExecuteScalar().ToString());
                    return value;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
  public static int ExecuteInsert(string sql)
  {
   return ExecuteInsert(sql,null);
  }
  
  //執行帶引數的sql語句,返回影響的記錄數(insert,update,delete)
  public static int ExecuteNonQuery(string sql,MySqlParameter[] parameters)
        {
         //Debug.WriteLine(sql);
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                MySqlCommand cmd = new MySqlCommand(sql, connection);
                try
                {
                    connection.Open();
                    if(parameters!=null) cmd.Parameters.AddRange(parameters);
                    int rows = cmd.ExecuteNonQuery();
                    return rows;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
  //執行不帶引數的sql語句,返回影響的記錄數
  //不建議使用拼出來SQL
  public static int ExecuteNonQuery(string sql)
        {
   return ExecuteNonQuery(sql,null);
        }
  
  //執行單條語句返回第一行第一列,可以用來返回count(*)
  public static int ExecuteScalar(string sql,MySqlParameter[] parameters)
        {
         //Debug.WriteLine(sql);
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                MySqlCommand cmd = new MySqlCommand(sql, connection);
                try
                {
                    connection.Open();
                    if(parameters!=null) cmd.Parameters.AddRange(parameters);
                    int value = Int32.Parse(cmd.ExecuteScalar().ToString());
                    return value;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
  public static int ExecuteScalar(string sql)
        {
   return ExecuteScalar(sql,null);
        }
  
  

  //執行查詢語句,返回dataset
        public static DataSet ExecuteQuery(string sql,MySqlParameter[] parameters)
        {
         //Debug.WriteLine(sql);
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                DataSet ds = new DataSet();
                try
                {
                    connection.Open();
                   
                    MySqlDataAdapter da = new MySqlDataAdapter(sql, connection);
                    if(parameters!=null) da.SelectCommand.Parameters.AddRange(parameters);
                    da.Fill(ds,"ds");
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                return ds;
            }
        }
        public static DataSet ExecuteQuery(string sql)
        {
         return ExecuteQuery(sql,null);
        }
        /// <summary>
        /// 返回SQL語句執行結果的第一行第一列,比如取最大值
        /// </summary>
        /// <returns>字串</returns>
        public static string ReturnValue(string SQL)
        {
            MySqlConnection connection = new MySqlConnection(connectionString);
            if (connection.State != ConnectionState.Open)
            {
                connection.Open();
            }
            string result;
            MySqlDataReader Dr;
            try
            {
                MySqlCommand cmd = new MySqlCommand(SQL, connection);
                Dr = cmd.ExecuteReader();
                if (Dr.Read())
                {
                    result = Dr[0].ToString();
                    Dr.Close();
                }
                else
                {
                    result = "";
                    Dr.Close();
                }
                connection.Close();
                connection.Dispose();
            }
            catch
            {
                throw new Exception(SQL);
            }
          
            return result;
        }

        /// <summary>
        /// 執行SQL語句,返回DataSet物件,用法:先例項化一個DataSet,如 DataSet ds=new DataSet;然後MSQL.RunProc(SQL,ds,1,10,"test"),之後這個ds就可以直接用了
        /// </summary>
        /// <param name="SQL">SQL語句</param>
        /// <param name="Ds">DataSet物件</param>
        /// <param name="StartIndex">開始的頁面,第一頁是1</param>
        /// <param name="PageSize">每頁顯示的大小</param>
        /// <param name="tablename">表名</param>
        /// <returns></returns>
        public static DataSet RunProc(string SQL, DataSet Ds, int StartIndex, int PageSize, string tablename)
        {
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                try
                {
                    connection.Open();
                    MySqlDataAdapter Da = new MySqlDataAdapter(SQL, connection);
                    Da.Fill(Ds, StartIndex, PageSize, tablename);
                    connection.Close();
                }
                catch (Exception ex)
                {
                    throw ex;
                }

               
                return Ds;
            }
        }
        /// <summary>
  /// 執行SQL語句,返回DataSet物件 用法:先例項化一個DataSet,如 DataSet ds=new DataSet;然後MSQL.RunProc(SQL,ds,"test"),之後這個ds就可以直接用了
  /// </summary>
        /// <param name="SQL">SQL語句</param>
        /// <param name="Ds">DataSet物件</param>
        /// <param name="tablename">表名</param>
        public static DataSet RunProc(string SQL, DataSet Ds, string tablename)
        {
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                try
                {
                    connection.Open();
                    MySqlDataAdapter Da = new MySqlDataAdapter(SQL, connection);
                    Da.Fill(Ds, tablename);
                    connection.Close();
                }
                catch (Exception ex)
                {
                    throw ex;
                }


                return Ds;
            }
        }
        /// <summary>
        /// 執行SQL語句,返回DataSet物件 用法:先例項化一個DataSet,如 DataSet ds=new DataSet;然後MSQL.RunProc(SQL,ds,"test"),之後這個ds就可以直接用了
        /// </summary>
        /// <param name="procName">SQL語句</param>
        /// <param name="DataSet">DataSet物件</param>
        public static DataSet RunProc(string SQL, DataSet Ds)
        {
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                try
                {
                    connection.Open();
                    MySqlDataAdapter Da = new MySqlDataAdapter(SQL, connection);
                    Da.Fill(Ds);
                    connection.Close();
                }
                catch (Exception ex)
                {
                    throw ex;
                }


                return Ds;
            }
        }
 }
}

 

------------------------WEB.Config

 <connectionStrings>
  <add name="DBConnection" connectionString="server=127.0.0.1;user id=root; password=root; database=test; pooling=false;charset=gb2312;allow zero datetime=true"/>
 </connectionStrings>

-------------------------需要下載MySql.Data.dll

http://download.csdn.net/sort/tag/asp.net%E8%BF%9E%E6%8E%A5MySQL%E7%9A%84DLL%E6%96%87%E4%BB%B6