1、Slite簡介
SQLite,是一款輕型的數據庫,是遵守ACID的關聯式數據庫管理系統,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數據庫管理系統來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生於2000年5月。 至今已經有13個年頭,SQLite也迎來了一個版本 SQLite 3已經發布。
2、在C#中連接Sqlite
連接Sqlite首先需要添加System.Data.SQLite.dll和System.Data.SQLite.Linq.dll的引用,這兩個dll文件你可以根據你的操作系統版本選擇合適的安裝版本,對於這兩個dll網上有的說放在system32或者指定目錄下,然后注冊,但是我按照那種做法就會出現“模塊 ***.dll 已加載,但找不到入口點DllRegisterSever”這個問題,我也嘗試着按網上的方法去解決,但是最后還是沒有解決,尼瑪,我果斷不管它,直接在項目里面引用這兩個dll文件。
代碼:
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Text; 7 using System.Windows.Forms; 8 using System.Data.SQLite ; 9 10 namespace Connect 11 { 12 public partial class Form1 : Form 13 { 14 public static SQLiteConnection sqlConn; 15 public static string ConnectionString = "Data Source=E:/instance;Pooling=true;Integrated Security=True";//存儲公用的數據庫連接字符串 16 17 18 //打開數據庫連接 19 public static SQLiteConnection StartSQLConn() 20 { 21 sqlConn = new SQLiteConnection(ConnectionString); 22 try 23 { 24 sqlConn.Open(); 25 } 26 catch 27 { 28 sqlConn = null; 29 } 30 return sqlConn; 31 } 32 public static bool GetSQLCmd(string SQLstr) 33 { 34 bool flag = false; 35 StartSQLConn(); 36 if (sqlConn != null) 37 { 38 SQLiteCommand SQLcmd = new SQLiteCommand(SQLstr, sqlConn); 39 try 40 { 41 if (SQLcmd.ExecuteNonQuery() > 0)//執行SQL語句 42 flag = true; 43 } 44 catch 45 { } 46 sqlConn.Close(); 47 } 48 return flag; 49 } 50 public Form1() 51 { 52 InitializeComponent(); 53 } 54 55 private void button1_Click(object sender, EventArgs e) 56 { 57 GetSQLCmd("insert into circuit(instance,user,coordinate,path,time)values('sun','qin','xin','hao','2014-04-23 14:55:10')"); 60 } 61 } 62 }
本以為一切都OK,誰知運行后彈出錯誤“混合模式程序集是針對“v2.0.50727”版的運行時生成的,在沒有配置其他信息的情況下,無法在 4.0 運行時中加載該程序集。”,對於這個問題,網上有說在app.config 中的configuration 節點中添加以下設置:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
我覺得實在不願再折騰,就直接關掉VS2010,用VS2008進行編譯,誰知,一切OK。
以上是我首次使用C#連接SQLite,也是首次使用SQLite遇到的一些問題,不喜勿噴哦!