首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

C# 連接 MySQL 完整實戰:DBUtility 庫封裝、SQLHelper 通用訪問類、增刪改查與存儲過程調用

     編輯:MySQL 綜合教學

C# 連接 MySQL 完整實戰:DBUtility 庫封裝、SQLHelper 通用訪問類、增刪改查與存儲過程調用

基於 Visual Studio 2010 + MySql.Data.dll,構建可復用的 MySQL 數據訪問層:創建 DBUtility 類庫、引用驅動、配置連接字符串、封裝 SQLHelper 核心類(ExecuteNonQuery/ExecuteReader/GetDataSet/ExecuteScalar/參數緩存),並演示 Insert/Delete/Update/Select/存儲過程調用完整代碼。

一、準備與項目結構

  1. Visual Studio 2010
  2. MySql.Data.dll(NuGet 或官網下載)
  3. MySQL 安裝包 mysql_installer_community_V5.6.21.1_setup.1415604646.msi

解決方案結構:

  • DBUtility(類庫)── SQLHelper.cs
  • Web/App 項目── 引用 DBUtility,配置 web.config

新建 DBUtility 類庫 引用 MySql.Data.dll

二、web.config 連接字符串

<connectionStrings>
  <add name="DBConnectionString"
       connectionString="Data Source=127.0.0.1;Database=你的數據庫名;User ID=用戶名;Password=密碼"
       providerName="MySql.Data.MySqlClient" />
</connectionStrings>

三、SQLHelper 核心類(關鍵方法)

public abstract class SQLHelper {
    public static readonly string connectionString =
        ConfigurationManager.ConnectionStrings["DBConnectionString"].ToString();
    private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());

    // 1. 執行無返回集命令(Insert/Update/Delete)
    public static int ExecuteNonQuery(string cmdText, CommandType cmdType = CommandType.Text, params MySqlParameter[] commandParameters) { ... }

    // 2. 執行返回 DataReader
    public static MySqlDataReader ExecuteReader(string cmdText, CommandType cmdType = CommandType.Text, params MySqlParameter[] commandParameters) { ... }

    // 3. 返回 DataSet
    public static DataSet GetDataSet(string cmdText, CommandType cmdType = CommandType.Text, params MySqlParameter[] commandParameters) { ... }

    // 4. 返回單值
    public static object ExecuteScalar(string cmdText, CommandType cmdType = CommandType.Text, params MySqlParameter[] commandParameters) { ... }

    // 5. 參數緩存
    public static void CacheParameters(string cacheKey, params MySqlParameter[] commandParameters) { ... }
    public static MySqlParameter[] GetCachedParameters(string cacheKey) { ... }

    // 6. 內部準備命令
    private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms) { ... }
}

四、業務層調用示例


注意:MySQL 參數標記為 ?參數名,與 SQL Server @參數名、Oracle :參數名 不同。SQL 語法大體相通,熟悉一種易遷移。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved