项目场景:
C#访问SqLite数据库
问题描述:
连接SqLite数据库时报错:无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块。
public int Execute(string sql, int? timeout = null, params object[] parameters)
{
Int32 eft = 0;
using (SQLiteConnection conn = new SQLiteConnection(dataSource))
{
using (SQLiteCommand cmd = new SQLiteCommand())
{
conn.Open();
cmd.Connection = conn;
cmd.CommandText = sql;
if (parameters != null && parameters.Count() > 0)
{
foreach (var p in parameters)
{
cmd.Parameters.Add(parameter);
}
}
cmd.CommandTimeout = timeout ?? 0;
eft = cmd.ExecuteNonQuery();
conn.Close();
}
}
return eft;
}
原因分析:
类库引用不完整或类库版本错误。
解决方案:
前往http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki页面,根据操作系统和.Net fx版本下载合适的包。
比如64位windows, .net 4.6从下列2个文件选择其一下载。
解压后会得到若干DLL文件
根据需要在项目中引用
其中带bundle的无需额外引用SQLite.Interop.dll,推荐使用这种。