我有一个应用程序,我想在与应用程序相同的文件夹中创建一个数据库。我查看SQLite for .NET 4.0一切看起来都很好,直到我得到一个异常“无法加载文件或程序集'System.Data.SQLite,Version = 1.0.88.0,Culture = neutral,PublicKeyToken = db937bc2d44ff139'或其依赖项之一。试图加载格式不正确的程序。“ SQLite适用于控制台.NET应用程序。我根本不想使用SQL Server。除了XML文件之外还有其他选择吗?
答案 0 :(得分:4)
SQLite是您描述的场景的绝佳选择。放弃SQLite因为你无法正确包含它似乎是错误的结论。通过NuGet引用它,你很好。库需要SQLite.Interop.dll
,您可能没有正确包含它。当您在x86下运行时,您可能还包含类似x64版本的内容(有关详细信息,请参阅this)。通过NuGet使用它,你应该没问题。
以下是我在5分钟内完成的快速设置:
代码示例:
string dataSource = "SQLiteDemo.db";
SQLiteConnection connection = new SQLiteConnection();
connection.ConnectionString = "Data Source=" + dataSource;
connection.Open();
SQLiteCommand command = new SQLiteCommand(connection);
command.CommandText = "CREATE TABLE IF NOT EXISTS beispiel ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name VARCHAR(100) NOT NULL);";
command.ExecuteNonQuery();
command.CommandText = "INSERT INTO beispiel (id, name) VALUES(NULL, 'Test-Datensatz!')";
command.ExecuteNonQuery();
command.Dispose();
connection.Dispose();
答案 1 :(得分:0)
我找到了另一个解决这个问题的方法。问题在于平台(x86 / x64)。我得到了Sqllite v1.0.88的源代码并打开了VS 2010解决方案文件。我注意到默认情况下目标是混合平台。我将其更改为任何CPU并构建了System.Data.SQLite.2010项目。我在我的项目中引用了这个dll,我没有x86 / x64平台的问题。一个dll适用于两者。