C# 操作sqlite


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); } } } }

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM