關於.Net中使用SQLite數據庫的方法
參考:
SQLite之C#連接SQLite
https://www.cnblogs.com/icebutterfly/p/7850689.html
關於SQLite的庫安裝比較特殊:
下載地址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki --ok!
https://www.sqlite.org/download.html。---用於安卓、Mac、Linux等平臺的下載。
下載安裝包:
sqlite-netFx20-setup-bundle-x64-2005-1.0.108.0.exe ---測試ok!
(為了與其它軟件保持一致,建議安裝.Net 4.5版本的!)
默認安裝路徑:C:\Program Files\System.Data.SQLite
.Net引用:只需引用安裝bin目錄下的,System.Data.SQLite.dll一個文件即可!
註意:
1、帶bundle的表示動態庫是按混合模式編譯的,還有純x86和純x64模式的庫,共3種,按實際需要選擇。(與項目的生成--目標平臺一致才行!)
2、下載的庫,一定要安裝,才行!!(只引用,未安裝,運行會報錯!!)
3、.Net使用SQLite,只需要引用System.Data.SQLite.dll,根本用不著 sqlite3.dll。沒想到吧!
…………………………
SQLite 介紹:
SQLite,是一款輕型的數據庫,用於本地的數據儲存。開源數據庫。
優點,它占用資源非常的低,在嵌入式設備中需要幾百K的內存就夠了;作為輕量級數據庫,他的處理速度也足夠快;支持的的容量級別為T級;獨立: 沒有額外依賴;開源;支持多種語言。
詳細優點:
1、它的設計目標是嵌入式的,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。
2、跨平臺和多語言支持:它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,
比如C, C++, PHP, Perl, Java, C#,Python, Ruby等。
3、速度快:比起Mysql、PostgreSQL這兩款開源的世界著名數據庫管理系統來講,它的處理速度比他們都快。
(比一些流行的數據庫在大部分普通數據庫操作要快。)
4、支持數據庫大小至2TB。
5、足夠小, 大致13萬行C代碼, 4.43M
6、簡單, 輕松的API
7、源碼完全的開源, 你可以用於任何用途, 包括出售它。
8、它還支持事務處理功能等等。
使用.NET操作SQLLITE:
示例代碼1:
public string Query()
{
string datasource = "e:/tmp/test.db";
System.Data.SQLite.SQLiteConnection.CreateFile(datasource);
//連接數據庫
System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection();
System.Data.SQLite.SQLiteConnectionStringBuilder connstr = new System.Data.SQLite.SQLiteConnectionStringBuilder();
connstr.DataSource = datasource;
connstr.Password = "admin";//設置密碼,SQLite ADO.NET實現了數據庫密碼保護
conn.ConnectionString = connstr.ToString();
conn.Open();
//創建表
System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
string sql = "CREATE TABLE test(username varchar(20),password varchar(20))";
cmd.CommandText = sql;
cmd.Connection = conn;
cmd.ExecuteNonQuery();
//插入數據
sql = "INSERT INTO test VALUES(‘a‘,‘b‘)";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
//取出數據
sql = "SELECT * FROM test";
cmd.CommandText = sql;
System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
StringBuilder sb = new StringBuilder();
while (reader.Read())
{
sb.Append("username:").Append(reader.GetString(0)).Append("\n")
.Append("password:").Append(reader.GetString(1));
}
//MessageBox.Show(sb.ToString());
return sb.ToString();
}
示例代碼2:事務操作:
using (SQLiteConnection conn = new SQLiteConnection(connectionString))
{
conn.Open();
SQLiteCommand cmd = new SQLiteCommand();
cmd.Connection = conn;
SQLiteTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList[n].ToString();
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.SQLite.SQLiteException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
關於.Net中使用SQLite數據庫的方法