使用PETAPOCO連線MYSQL資料庫

BattleHeart發表於2019-05-11

使用Petapoco連線Mysql資料庫

一、確認是否安裝了Mysql驅動

首先確認下我們的電腦上面有沒有.NET Mysql的驅動,雖然我們電腦上裝了Mysql但是沒有安裝驅動話是不能進行操作的。那麼問題來了?我們要怎樣才能知道有沒有安裝mysql驅動呢?下面我們就通過程式碼來實現

class Program
{
    static void Main(string[] args)
    {
        DataTable dt = DbProviderFactories.GetFactoryClasses();
        foreach (DataRow dr in dt.Rows)
        {
            Console.WriteLine(dr[0].ToString());
        }
        Console.Read();
    }
}

GetFactoryClasses方法在System.Data.Common名稱空間下面通過DBProviderFactory 建立不同資料庫型別的操作,比如說我們在寫資料庫應用程式時,如果為SQL Server,則用SQLConnection,如為Oracle,則用OracleConnection. 

一般在程式中寫:SQLConnection conn = new SQLConnection(); 那如果要改為Oracle,則要重新改寫並重編程式碼,但如果用工廠模式,則可以這樣做:

DBProviderFactory factory = DBProviderFactorys.GetFactory("System.Data.SqlClient"); //可通過配置改變 

DBConnection conn = factory.CreateConnection(); 

conn.ConnectionString = ..... 

也就達到了不用改動程式碼即實現更換不同資料庫的目的!

當然上面提到的只是連線的部分,具體的SQL語句寫法還要根據資料庫的不同而不同

sql server 使用的是 TSQL ,而Oracle使用的則是 PLSQL,解釋到這裡我們先看一下GetFactoryClasses返回一個Table,其中包含有關實現 DbProviderFactory 的所有已安裝提供程式的資訊。

這個DataTable中包含4個欄位分別如下表所示:

    

我們只需要看一下第一個欄位就好了。

如果沒有安裝Mysql驅動程式的話就不會有Mysql Data Provider,好的環境搭建好了,接下來我們就開始用Petapoco連線Mysql資料庫。資料庫連線字串如下:

<add name="connectionString" connectionString="Server=localhost;Database=DataBaseName;Uid=root;Pwd=123456;charset=utf8;pooling=true;" providerName="MySql.Data.MySqlClient"/>

裝了Mysql驅動後這裡面providerName設定才生效,否則會報錯。生成不了實體。

詳情請見附件。

龐順龍最後編輯於:4年前

內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。

相關文章