以前撰寫視窗程式,最常使用的方式就是用Access,當作本機DB來使用,不然就要安裝MySQL或SQLExpress等等的。設計地端DB還是越簡單輕量越好,畢竟就只有服務一個連線,如果能像Access這樣最好,但是真的要用Access嗎?建議還是不要拉,效能有點低落勒,所以SQLite就成了最佳方案了。
使用方式相當簡單,首先,去SQLite官方,下載命令檔,這個可以幫助我們使用command模式。
- 連線官網: https://sqlite.org/download.html
- 找到command-line tools的壓縮包,把sqlite3.exe解出來用
- 把sqlite3.exe複製到專案檔主目錄下,方便作業。
D:\>sqlite3.exe Test.db
SQLite version 3.41.2 2023-03-22 11:56:21
Enter ".help" for usage hints.
sqlite>
sqlite3.exe 在後面帶一個檔案名稱,這個就會是類似大型資料庫中的一個Schema或者說就是Database。
在sqlite3的命令,都要在前面加上一個點,如果想要創建實體資料庫檔案,就下指令 .databases
sqlite> .databases
main: D:\Test.db r/w
sqlite>
這時候就會創造出一個實體檔案Test.db,因為是輕量DB,所以就只有一個Schema(Database),所以直接下Create table吧。
sqlite> CREATE TABLE Log (PID INTEGER,Name TEXT,Money REAL ,PRIMARY KEY(PID));
sqlite> .quit
D:\>
其實命令也沒幾個可以用,資料型態更是只有四種,名副其實的輕量喔。
如果不想用命令字元,其實有一套GUI工作相當好用 DB Browser for SQLite ,甚麼作業系統的版本都有喔,不想打指令的可以多用用。
SQLite的資料型態:
- INTEGER : 整數。是帶有正負值的整數。
- REAL : 浮點數值。
- TEXT : 文字字串值。以資料庫的文字編碼方式:UTF-8, UTF-16BE, UTF-16LE來儲存資料。
- BLOB : 二進位大型物件(Binary Large OBject)。
VS中使用SQLite
- 首先要用 Nuget工具 安裝 System.Data.SQLite
- 創建SQLite的實體檔案,如果沒有可以開啟自動新增模式。
- 簡單舉例如下:
public void SampleSQLite()
{
// 本地資料庫連線(檔案)
var Connection_String = new SQLiteConnectionStringBuilder("Data Source=Test.db; Version = 3; New = False; Compress = True;");
try
{
using (var connection = new SQLiteConnection(Connection_String)
{
connection.Open();
using (var command = connection.CreateCommand())
{
command.CommandText = "REPLACE INTO Log (PID, Name, Money) VALUES (@PID, @Name, @Money)";
command.Parameters.AddWithValue("@PID", 1);
command.Parameters.AddWithValue("@Name", "Mika");
command.Parameters.AddWithValue("@Money", 1000.0);
command.ExecuteNonQuery();
}
}
}
catch (Exception)
{
}
}