1. 程式人生 > >C#與資料庫SQLite:在C#專案中使用SQLite

C#與資料庫SQLite:在C#專案中使用SQLite

下面這兩個是不同的:

1.System.Data.SQLite ( http://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki)

2.SQLite(https://www.sqlite.org/download.html)

儘管是一個網站,但是,是兩個產品。前者可用於C#,後者可以直接使用。前者的安裝目錄包含的檔案很多,後者包含很少。詳細差別可以自行查詢。

在C#專案中使用的是System.Data.SQLite,所以,首先要下載並安裝System.Data.SQLite 。

然後在專案中新增System.Data.SQLite.dll:專案右鍵——新增——引用——瀏覽——安裝目錄——System.Data.SQLite.dll——確定。如下圖:

新增完成後,在專案的引用目錄中會出現System.Data.SQLite,如下圖:

這時候就可以新建專案使用SQLite了。需要using System.Data.SQLite;此時在專案的bin/Debug資料夾中會有System.Data.SQLite.dll和System.Data.SQLite.dll.config。

C#中資料庫訪問使用的是ADO.NET模型。使用SQLite也不例外。

(如果有問題,可以從System.Data.SQLite的安裝目錄中複製System.Data.SQLite.dll.config到專案的資料夾中,和上圖中的AllForms、Properties等在相同資料夾中)

(上圖中程式碼使用的並不是SQLite資料庫,而是SQL Server資料庫)

在C#專案中建立資料庫:

var fileName = "D:/testDB.db";

SQLiteConnection.createFile(fileName);

相應位置就出現了資料庫檔案。

這時候可以用SQLite的圖形介面管理工具驗證該資料庫。

成功建立資料庫。接下來在VS中C#專案裡連線該資料庫並建立一個表。

連線資料庫:

string databaseFileName = "D:/testDB.db";
string connectionString = "data source = " + databaseFileName;
SQLiteConnection dbConnection = new SQLiteConnection(connectionString);
dbConnection.Open();

此時出了些問題:

1.缺少SQLite.Interop.dll。

只要從SQLite的安裝目錄中的bin目錄下找到該檔案,並複製到專案目錄bin的debug中即可。

2.試圖載入格式不正確的程式。

原來這是64位應用32位產生的問題。就是平臺和軟體的版本不相容。我的電腦是64位的,我裝的System.Data.SQLite也是64位的,但是專案屬性——生成——平臺目標卻是Any CPU(首選32位),將平臺目標改為64位後,問題消失了。

建立一個表:

            string[] colNames = new string[] { "ID", "Name", "Age", "Email" };
            string[] colTypes = new string[] { "INTEGER", "TEXT", "INTEGER", "TEXT" };

            string tableName = "table1";

            string queryString = "CREATE TABLE IF NOT EXISTS " + tableName + "( " + colNames[0] + " " + colTypes[0];

            for (int i = 1; i < colNames.Length; i++)
            {
                queryString += ", " + colNames[i] + " " + colTypes[i];
            }
            queryString += "  ) ";
            SQLiteCommand dbCommand = dbConnection.CreateCommand();
            dbCommand.CommandText = queryString;
            SQLiteDataReader dataReader = dbCommand.ExecuteReader();

成功連線資料庫並建立了一個表,用圖形介面管理工具,會看到:

可以在C#專案中建立資料庫、連線資料庫、建立表,其他操作還沒有測試。

也可以通過VS選單欄中的專案——管理NuGet程式包——瀏覽——System.Data.Sqlite——安裝

使用此方法時要注意專案的.NET Framework框架的版本,因為可能會出現添加了System.Data.Sqlite後在專案中卻不能使用Sqlite的問題,using找不到此型別。