首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

.NET 連接 MySQL 封裝類:開箱即用的數據訪問組件

     編輯:ASP.NET 基礎

前置準備

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 等)提升並發性能。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved