我想将一个asp.net Web表单项目连接到一个sqlite数据库,所以我创建了一个Dbase.cs类来处理sql命令。 在将System.Data.SQLite提供程序与Nuget包括在一起之后,出现以下错误-无法加载DLL'SQLite.Interop.dll':找不到指定的模块。
我读到我需要指定正确的体系结构(x64 / x86),但似乎找不到任何地方的SQLite.Interop.dll文件。 我需要为平台安装二进制捆绑包以外的其他东西吗?
Dbase.cs:
using System;
using System.Data;
using System.Web;
using System.Data.SQLite;
public class Dbase
{
public Dbase()
{
}
public static SQLiteConnection MakeConnection(string dbFile = "DB.sqlite")
{
SQLiteConnection c = new SQLiteConnection();
c.ConnectionString = "Data Source=" +
HttpContext.Current.Server.MapPath("~/App_Data/" + dbFile) +
";Version=3;";
c.Open();
return c;
}
public static DataTable SelectFromTable(string strSQLite, string FileName = "DB.sqlite")
{
SQLiteConnection c = MakeConnection(FileName);
SQLiteCommand comm = new SQLiteCommand();
comm.CommandText = strSQLite;
comm.Connection = c;
DataTable dt = new DataTable();
SQLiteDataAdapter da = new SQLiteDataAdapter(comm);
da.Fill(dt);
c.Close();
return dt;
}
public static void ChangeTable(string strSQLite, string FileName = "DB.sqlite")
{
SQLiteConnection c = MakeConnection(FileName);
SQLiteCommand comm = new SQLiteCommand();
comm.CommandText = strSQLite;
comm.Connection = c;
comm.ExecuteNonQuery();
c.Close();
}
}
答案 0 :(得分:0)
DLL不应被视为要编辑的文件。它们是动态链接库。也就是说,它们是您将其他文件编译为一个文件的结果,并且仅在编译后可用。
您的问题出在其他地方,而不是DLL内。另一个文件有问题,一旦该文件编译到DLL中,它就会冒泡。
.csproj文件中的包引用是否正确?如果是这样,我建议您在类似的线程中查看this comment。