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