1. 程式人生 > >C#呼叫MySQL資料庫方法1(使用MySql.Data.dll連線)

C#呼叫MySQL資料庫方法1(使用MySql.Data.dll連線)

方法1、

1、檢查nuget包管理器是否為最新程式

vs2015使用nuget包管理器安裝失敗,在使用vs2015安裝一些nuget包的時候,出現了an error occurred while retrieving package for "Newtonsoft.Json 11.0.0.2"的錯誤,按照網上更換nuget源的方式無果後,發現nuget管理器可以更新,更新之後就可以了。更新在“工具”->“擴充套件與更新”->“更新”->“visual studio庫”裡。

2、

2.1、開啟專案——》管理NuGet程式包(N)——》點選瀏覽,

在搜尋裡面找到你所需要的程式包,選擇合適版本(版本太新有可能會下載不成功,需要多選擇多試),點選下載

2.2、安裝Nuget的MySQL程式包,開啟Nuget包管理器控制檯:

在PM>提示符後輸入安裝命令:(電腦要聯網)

Install-Package linq2db.SQLite

安裝成功後:

自動添加了依賴項:System.Data.SQLite、linq2db、ling2db.t4models(建立Linq to SQLite的T4模板)

在解決方案資源管理器中添加了幾項:

3、找到安裝程式包目錄下的MySql.Data.dll類庫,

然後在VS2017中開啟我們的專案,如下圖所示,

右鍵點選“引用”-“新增引用”,

先點選視窗左側的“瀏覽”,然後在視窗右下方點選“瀏覽”,

然後在MySQL Connector Net的安裝目錄下找到MySql.Data.dll,然後選中並點選“新增”按鈕,接著再“確定”一下就OK了。

接下來就可以在程式中引用MySql.Data.dll中的類庫了,

程式中新增 using MySql.Data.MySqlClient;即可。

5、現在就可以使用SQLite資料庫了:

using System.Data.SQLite;

 由於對C#程式碼不是太熟悉,就不寫具體的連線方法了。

6、實現Linq to SQLite:

開啟解決方案資源管理器中LinqTODB.Template資料夾中的CopyMe.SQLite.tt.txt檔案:

顯示如下:

7、模板說明的第一步、第二部都不用管,我們直接來做第三部,在Web/app.config檔案中新增資料庫連線:

開啟解決方案的屬性視窗,選擇”設定“,新增一個”connectionStrings“的連線字串,並設定值後儲存:

開啟Web/app.config檔案,修改檔案,在connectionString="Data Source=E:\Address.db3" 後新增providerName="SQLite":

整個配置檔案如下:(其中E:\Address.db3應為你的SQLite資料庫檔案)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="WindowsFormsApplication1.Properties.Settings.connectionStrings"
            connectionString="Data Source=E:\Address.db3" providerName="SQLite" />
    </connectionStrings>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>

8、回到CopyMe.SQLite.tt.txt檔案視窗,修改兩個位置後儲存:

第一個位置是資料庫檔案所在的目錄,本例應修改為“E:\”,第二個位置是SQLite資料庫的檔名,本例應為“Address.db3"。(也可以修改NamespaceName來修改為自己的名稱空間)

 9、在解決方案資源管理器視窗,右擊CopyMe.SQLite.tt.txt檔案重新命名:"Address.tt",檔名隨便起,後面的.txt去掉,得到模板檔案:

出現詢問是否執行模板檔案視窗:

確定後在解決方案資源管理器視窗多出了Linq to SQLite類:

10、現在可以在你的程式碼中執行Linq To SQLite了:

private void Form1_Load(object sender, EventArgs e)
        {
            var db=new DataModel.addressDB;
            var temp=
                from c in db.AddressDistricts 
                select c;
            foreach (var c in temp)
                    Console.WriteLine(c.DistrictName );

        }