Visual Studio 不自帶 MySQL 驅動,需下載安裝 mysql-connector-net-6.4.3(或更新版本),引用 MySql.Data.dll 即可使用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using MySql.Data.MySqlClient;
namespace DAL
{
public class GetConnection
{
private static MySqlConnection _connection;
///
/// 獲取數據庫連接(單例模式,自動處理斷線重連)
///
private static MySqlConnection Connection
{
get
{
// 建議從配置文件讀取連接字符串
string connectionString = "server=localhost;user id=root; password=root; database=system; pooling=false";
// 遠程示例:server=222.222.222.222;port=3306;uid=user;pwd=;database=basename;
if (_connection == null)
{
_connection = new MySqlConnection(connectionString);
_connection.Open();
}
if (_connection.State == ConnectionState.Closed)
{
_connection.Open();
}
if (_connection.State == ConnectionState.Broken)
{
_connection.Close();
_connection.Open();
}
return _connection;
}
}
/// 執行查詢,返回 DataReader
public static MySqlDataReader GetDataRead(string sql)
{
MySqlCommand command = new MySqlCommand(sql, Connection);
return command.ExecuteReader();
}
/// 執行增刪改,返回影響行數
public static int NoSelect(string sql)
{
MySqlCommand command = new MySqlCommand(sql, Connection);
return command.ExecuteNonQuery();
}
/// 執行查詢,返回 DataTable
public static DataTable GetDataTable(string sql)
{
MySqlCommand command = new MySqlCommand(sql, Connection);
DataTable dt = new DataTable();
MySqlDataAdapter sda = new MySqlDataAdapter(command);
sda.Fill(dt);
return dt;
}
/// 執行標量查詢,返回單一值
public static string GetScalar(string sql)
{
MySqlCommand command = new MySqlCommand(sql, Connection);
return command.ExecuteScalar().ToString();
}
}
}
// 執行刪除
GetConnection.NoSelect("delete from UserInfo where Id=1");
// 讀取整表
DataTable dt = GetConnection.GetDataTable("select * from UserInfo");
web.config 的 connectionStrings 節點,避免硬編碼。pooling=true),並使用 using 語句確保連接釋放。ExecuteReaderAsync 等)提升並發性能。