1. 程式人生 > >在VS2017 C#中快速用上Sqlite

在VS2017 C#中快速用上Sqlite

如果我們想編寫一個有資料庫支援的程式,但是我們又不想安裝資料伺服器,那麼Sqlite我們最好的選擇,以前我們還可以選擇微軟的Access資料庫檔案MDB,但隨著微軟的Office的升級,MDB的支援也是越來越錯綜複雜了,所以這裡我們為了快速的實現我們的目標,我們選擇了Sqlite。

如何快速的能夠將Sqlite用到我們的C#專案中去呢?其實只有三部:
1、找到System.data.SQlite.dll檔案(記得要支援最新的.net框架,最好從sqlite的官網下載dll:https://www.sqlite.org/download.html),動態連結檔案在這裡下載
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki


不要用過時的版本,否則會出現框架不一致發生無響應錯誤。System.BadImageFormatException:“未能載入檔案或程式集“System.Data.SQLite, Version=1.0.60.0, Culture=neutral
下載以後開啟檔案件,找到System.Data.Sqlite.dll
在這裡插入圖片描述
找到它,開啟屬性看看,是否是這個檔案:
在這裡插入圖片描述
並通過新增引用新增到專案引用中,如圖所示:
在這裡插入圖片描述

2、通過SqliteStudio建立一個測試用表格
在這裡插入圖片描述
這裡,我們建立了一個表格,TestTab,表中有三個欄位id,name,age,隨後輸入幾條記錄即可。
在這裡插入圖片描述
3、在程式碼中呼叫
在編寫程式碼前,記得新增引用程式碼,using System.Data.SQLite;

//讀取記錄程式碼 
void loadSqliteRecord(int x=0)
{
//設定連線字串
string constr = "Data Source=../data/MyDataBase.db;";
//設定SQL查詢語句
string sql = "select * from TestTab";
////建立連線物件
SQLiteConnection con = new SQLiteConnection(constr);
//建立命令物件
SQLiteCommand cmd = new SQLiteCommand(sql, con);
con.Open();
SQLiteDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
while (reader.Read())
//向下拉框中新增登入名列表
comboBox1.Items.Add(reader.GetString(x));
con.Close();
cmd = null;
con.Dispose();
}
//新增記錄程式碼
void insertSqliteRecord(string id)
{

Random ra = new Random(20);//這個隨機數不是資料庫呼叫的必要語句
string constr = "Data Source=../data/MyDataBase.db;";
//設定SQL查詢語句
string sql = "insert into TestTab(id,name,age) values('"+id+"','student0"+ id.TrimStart("stu".ToCharArray())+"','"+ra.Next(16,20)+"')";
////建立連線物件
SQLiteConnection con = new SQLiteConnection(constr);
//建立命令物件
SQLiteCommand cmd = new SQLiteCommand(sql, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
cmd = null;
con.Dispose();

}
上述程式碼都單獨進行了資料的連線和呼叫,其實如果我們在工程中使用,可以專門建立一個呼叫資料庫的輔助類,就可以避免每次呼叫都要設定資料庫連線字串以及建立一個連線物件,最後還要單獨關閉連線釋放連線。通過上述程式碼我們就能夠快速的獲取到我們需要的記錄以及插入記錄。執行效果如下:
在這裡插入圖片描述
我已經將上述程式碼工程例項及VS2017中使用的System.data.sqlite.dll打包上傳了,這裡是下載地址:
原始碼下載