使用MySql.Data 連接mysql 數據庫,需先引用MySql.Data ,用過MySql.Data.dll操作Mysql數據庫。
1,在工具-Nuget包管理器-管理解決方案的Nuget程序包——安裝MySql.data.dll
2,使用 MySqlConnection連接數據庫,在使用MySqlCommand設置執行sql語句,執行類別,使用參數。
using System;
using System.Configuration;
using MySql.Data.MySqlClient;
using System.Data;
namespace Webapi.Data
{
public static class DBHelper
{
private static MySqlConnection con = null;
//獲取配置文件中的數據庫地址
private static string connection = ConfigurationManager.ConnectionStrings["smallprocedures"].ConnectionString;
/// <summary>
/// 開啟/關閉數據庫連接
/// </summary>
public static void Connection()
{
try
{
if (con != null)
con.Clone();
else
{
con = new MySqlConnection(connection);
con.Open();
}
}
catch (Exception e)
{
//連接失敗
}
}
/// <summary>
/// 查詢
/// </summary>
/// <param name="sql">sql語句</param>
/// <returns></returns>
public static DataSet Select(string sql)
{
DataSet ds = new DataSet();
try
{
Connection();//開啟
MySqlCommand com = new MySqlCommand(sql, con);
com.CommandType = CommandType.Text;//執行sql語句
MySqlDataAdapter db = new MySqlDataAdapter(com);
db.Fill(ds);//讀取數據
}
catch (Exception e)
{
}
finally
{
Connection();//關閉
}
return ds;
}
/// <summary>
/// 查詢(存儲過程)
/// </summary>
/// <param name="procedureName">存儲過程名稱</param>
/// <param name="sqlParameter">參數</param>
/// <returns></returns>
public static DataSet Select_Procedure(string procedureName, MySqlParameter [] sqlParameter)
{
DataSet ds = new DataSet();
Connection();
MySqlCommand com = new MySqlCommand(procedureName, con);
com.CommandType = CommandType.StoredProcedure;//執行存儲過程
try
{
if (sqlParameter != null)
{
for (int i = 0; i < sqlParameter.Length; i++)
com.Parameters.Add(sqlParameter[i]);
}
using (MySqlDataAdapter db = new MySqlDataAdapter(com))
db.Fill(ds);
}
catch (Exception e)
{
com.Parameters.Clear();
}
finally
{
Connection();
}
return ds;
}
/// <summary>
/// 增刪改
/// </summary>
/// <param name="sql">sql語句</param>
/// <returns></returns>
public static bool Update(string sql)
{
Connection();
int num = 0;
MySqlCommand com = new MySqlCommand(sql, con);
MySqlTransaction sqlTransaction = com.Transaction;//創建事務
try
{
num= com.ExecuteNonQuery();
}
catch (Exception)
{
//異常處理
}
finally
{
if (num > 0)
sqlTransaction.Commit();//提交
else
sqlTransaction.Rollback();//回滾
Connection();
}
return false;
}
}
}