SQLite是一個簡易的資料庫系統,開放原始碼,可以直接把SQLite綁在程式裡使用,FireFox及Android等軟體也都有內建SQLite。SQLite不需要安裝,看起來就只是一個檔案而已,也可以使用memory模式,讓它存在記憶體中而不需要建立一個檔案存放。
SQLite支援的SQL指令:http://www.sqlite.org/lang_corefunc.html
C#要連接SQLite可以使用open source的System.Data.SQLite,它是一個基於ADO.Net所做與SQLite的溝通介面,目前支援到.net framework 3.5。可於sourceforge下載其dll來使用,就可以了。
下方的範例是介紹如何在Csharp下使用ADO.NET連接與操作SQLite,包含了自動產生SQLite檔案與DataGridView使用class binding datasource方法。
…(參考資料來源: http://blog.yslifes.com/archives/972)
============================================================================================================
Linq To SQLite
前幾天小章大發了一篇 [Entity Framework] SQLite 與 Entity Framework
剛好最近我也有用到SQLite,但我是用Linq To SQLite,而不是Entity Framework
雖然這兩個東西很像,但由於DBML Designer沒有提供生成SQLite資料庫的DBML的功能,
因此必須要靠第三方的元件來生出DBML。雖然比較麻煩,但提供給大家另一個選擇。
首先必須安裝SQLite的Provider
Latest file releases for the ADO.NET 2.0 Provider for SQLite
安裝完之後,就可以利用Visual Studio來建立資料庫的schema,
或是用 Navicat for SQLite 這套工具來幫助管理資料庫(有免費的中文版,還不錯)。
資料庫建完之後,接著要去下載這套 dblinq2007 ,用來生出dbml。
…(參考資料來源: http://www.dotblogs.com.tw/lastsecret/archive/2011/05/04/24191.aspx)
============================================================================================================
SQLite 自動遞增數值
張貼者:2008/12/9 上午12:43Yichang Wu [ 已更新 2008/12/9 上午12:44 ]Create Table 時參數
`noid` INTEGER PRIMARY KEY AUTOINCREMENT
SQLite 預設會有個 rowid , 但不能存取
加入一個新的 `id` INTEGER PRIMARY KEY AUTOINCREMENT
rowid 就會不見(隱藏!?)
參考:Google關鍵字搜尋 ..... 忘了記。
SQLite DateTime 字串處理
張貼者:2008/12/9 上午12:40Yichang Wu [ 已更新 2008/12/9 上午12:42 ]msdn上對iso 8601的描述:(http://msdn.microsoft.com/zh-cn/library/ms187819.aspx)
DateTime 字串示例:
* 2008-12-01T16:18:13
* 2008-12-01T16:18:13.487
用data_time.ToString("s");這種方法轉換成iso 8601標準字符串格式
如下:
string sql="insert into [table] (date_time)" values('" + date_time.ToString("s" ) + "'";
參考:
http://hi.baidu.com/hopesoft/blog/item/4c29e7f83f320b09d9f9fd96.html
C# 使用 System.Data.SQLite
張貼者:2008/12/9 上午12:32Yichang Wu [ 已更新 2008/12/9 上午12:34 ]System.Data.SQLite
http://sqlite.phxsoftware.com/
檔案下載後, 解壓縮, 從中取得 System.Data.SQLite.dll
以下範例來自:http://www.javaeye.com/topic/114055
using
using System.Data.SQLite;
Connection和Command:
private SQLiteConnection conn;
private SQLiteCommand cmd;
連接db:
conn = new SQLiteConnection("Data Source=c:\\test.db");
conn.Open();
INSERT / UPDATE:
cmd = conn.CreateCommand();
cmd.CommandText = "INSERT INTO user(email,name) VALUES ('email','name')";
cmd.ExecuteNonQuery();
cmd.CommandText = "UPDATE userSET name = 'Codelicious' WHERE ID = 1";
cmd.ExecuteNonQuery();
SELECT:
cmd.CommandText = "SELECT ID, name FROM user";
SQLiteDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
Console.WriteLine("ID: " + reader.GetInt16(0));
Console.WriteLine("name: " + reader.GetString(1));
}
}
SQLite Manager
firefox 也開始改用sqlite 做為內部的資料庫引擎 ,也因此firefox有一個延伸的add-on : https://addons.mozilla.org/en-US/firefox/addon/5817
功能跟sqlite browser一樣 或者說 是sqlite browser的網頁版
沒有留言:
張貼留言