SQLite引擎不是個程序與之通信的獨立進程,而是連接到程序中成為它的一個主要部分,所以主要的通信協議是在編程語言內的直接API調用。
1.下載動態庫
官網下載地址:https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki。
根據.net版本選擇,我使用的是.net4.5版本,操作系統是windows 64位。
bundle版本:sqlite-netFx45-setup-bundle-x64-2012-1.0.114.0.exe
binary版本:sqlite-netFx45-binary-x64-2012-1.0.114.0.zip
運行環境:.net4.5,Visual C++ 2012
Visual C++ 2012的下載地址:https://support.microsoft.com/zh-cn/help/2977003/the-latest-supported-visual-c-downloads
使用binary版本需要將SQLite.Interop.dll拷貝到文件執行目錄,否則會報錯,所以我選擇用bundle版本,安裝完成后將其中的System.Data.SQLite.dll添加到項目引用中即可。
using System.Data.SQLite;//引用
/// <summary> /// 設置連接字符串 /// </summary> /// <param name="dbpath">數據庫文件路徑</param> /// <param name="password">連接密碼</param> public static void SetconnectionStr(string dbpath, string password=null) { SQLiteConnectionStringBuilder connstr = new SQLiteConnectionStringBuilder(); connstr.DataSource = dbpath; if (!string.IsNullOrEmpty(password)) { connstr.Password = password;//連接密碼 } connstr.JournalMode = SQLiteJournalModeEnum.Wal; connectionString = connstr.ToString(); } /// <summary> /// 執行SQL語句,返回影響的記錄數 /// </summary> /// <param name="SQLString">SQL語句</param> /// <returns>影響的記錄數</returns> public static int ExecuteSql(string SQLString) { using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { using (SQLiteCommand cmd = new SQLiteCommand(SQLString, connection)) { try { connection.Open();//打開連接 int rows = cmd.ExecuteNonQuery(); connection.Close(); connection.Dispose(); return rows; } catch (System.Data.SQLite.SQLiteException E) { connection.Close(); throw new Exception(E.Message); } } } }