SQLite 是一套 Embedded RDBMS,很適合加進 App 裡頭跟著跑,並且資料庫檔能輕鬆跨平台。關於其它 SQLite 的優點,可以拜 Google 大神或查 Wikipedia 取得。或許效能與支援度未能與其它 DBMS 相比,但你總不會想為了暫存 Spore 裡的建築方式,去安裝這些巨獸吧 XD
- 下載並解壓縮前面的 SQLite for ADO.Net 2.0 檔案
- 安裝 bin\Designer\install.exe,以提供設計階段的 VS.Net IDE支援
- 在方案中,加入對 bin\System.Data.SQLite.DLL 的參考
- 可以用了 !
Imports System.Data.SQLite
' ADO.Net 標準 Reader 三物件
Dim slconn As SQLiteConnection
Dim slcmd As SQLiteCommand
Dim slrdr As SQLiteDataReader
'建立 connection,給定檔名即可。注意讀寫權限 !
slconn = New SQLiteConnection("Data Source=c:\backup\Test.db3")
slconn.Open()
slcmd = slconn.CreateCommand() '建立 command 物件
'取得目前該檔案已有之 Table 名稱
Dim found as Boolean = False
slcmd.CommandText = "SELECT name FROM sqlite_master WHERE type='table';"
slrdr = slcmd.ExecuteReader() '建立 reader 物件
If slrdr.HasRows Then
While slrdr.Read()
MsgBox(If slrdr.GetString(0))
If slrdr.GetString(0).Equals("test") then found = True
End While
slrdr.Close() 'Reader 要關閉才能再利用
End If
If Not found Then
'建立 Table
slcmd.CommandText = "CREATE TABLE test (name);"
slcmd.ExecuteNonQuery()
End If
'INSERT, UPDATE, DELETE 用法均類似
slcmd.CommandText = "INSERT INTO test(name) VALUES ('clifflu');"
slcmd.ExecuteNonQuery()
'SELECT 需要用 cmd.ExecuteReader 抓結果
slcmd.CommandText = "SELECT name FROM test ;"
slrdr = slcmd.ExecuteReader()
If slrdr.HasRows() Then
While slrdr.Read()
Msgbox(slrdr.GetString(0))
End While
slrdr.Close()
End If
slconn.Close() 'Connection 用完要關