为 WPF 应用程序创建本地数据库

本文关键字:数据库 创建 WPF 应用程序 | 更新日期: 2023-09-27 18:32:41

>我有一个应用程序,我想在与该应用程序相同的文件夹中创建一个数据库。我查看了 .NET 4.0 的 SQLite,一切看起来都很好,直到我得到一个异常"无法加载文件或程序集'System.Data.SQLite, version=1.0.88.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' 或其依赖项之一。尝试加载格式不正确的程序。SQLite 与控制台 .NET 应用程序配合使用。我根本不想使用SQL Server。除了 XML 文件之外,还有其他方法吗?

为 WPF 应用程序创建本地数据库

SQLite 是您描述的方案的绝佳选择。因为无法正确包含SQLite而放弃SQLite似乎是错误的结论。通过NuGet引用它,你很好。库需要您可能未正确包含的SQLite.Interop.dll。当您在 x86 下运行时,您可能还包含类似 x64 版本的内容(有关详细信息,请参阅此处)。通过NuGet使用它,你应该没问题。

这是我在 5 分钟内完成的快速设置:

  1. 创建的控制台应用程序(VS Express 2012 桌面版、.NET v4、任何 CPU、调试)
  2. 通过 NuGet 安装
  3. 使用以下代码
  4. 像魅力一样工作!

代码示例:

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

我找到了解决这个问题的另一种解决方案。问题出在平台(x86/x64)上。我得到了Sqllite v1.0.88的源代码,并打开了VS 2010解决方案文件。我注意到默认情况下目标是混合平台。我把它改成了任何CPU,并构建了System.Data.SQLite.2010项目。我在我的项目中引用了这个 dll,但我对 x86/x64 平台没有问题。一个 dll 适用于两者。