sqlite 连接与 c# XamlParseException

sqlite connection with c# XamlParseException

我很难在 C# 中与我现有的 sqlite 数据库建立连接。我想为 WPF 应用程序制作它。

这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Data.SQLite;
using Finisar.SQLite; 

namespace Ebios_WPF
{

/// <summary>
/// Logique d'interaction pour MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {

        // We use these three SQLite objects:
        Finisar.SQLite.SQLiteConnection sqlite_conn;
        Finisar.SQLite.SQLiteCommand sqlite_cmd;
        Finisar.SQLite.SQLiteDataReader sqlite_datareader;

        // create a new database connection:
        sqlite_conn = new Finisar.SQLite.SQLiteConnection("Data Source=existingDB.db; Version=3;");

        // open the connection:
        sqlite_conn.Open();

当我将现有的 sqlite 数据库放入参数时,出现 XamlParseException:

sqlite_conn = new Finisar.SQLite.SQLiteConnection("Data Source=existingDB.db; Version=3;");

但如果我创建一个新数据库,它就可以工作了:

sqlite_conn = new Finisar.SQLite.SQLiteConnection("Data Source=NewDB.db; Version=3;New=True;");

感谢您的帮助:)

此致

我遇到了这个问题(和相同的错误消息),发现 sqlite.interop.dll 没有自动 output/copied 到它应该在主 WPF 项目中的位置。

我有一个 class 项目 ("Repository"),它使用来自 Nuget 的 System.Data.Sqlite.Core。当我构建该项目时,它会输出到它的 bin\Debug\ 目录,并创建两个子目录:"x64" 和 "x86",每个子目录中都有 sqlite.interop.dll。主 (WPF) 项目中需要这些目录,但不会在生成时移动到那里。因此,为了解决这个问题,我在主 WPF 的 Debug 和 Release bin 目录中手动创建了一个 x64 和 x86 文件夹,并复制了 sqlite.interop.dll。我已将其添加到我的 post 构建中(首先创建文件夹 x64 和 x86)。 "Repository" 是我安装 Sqlite Nuget 包的项目的名称。

copy "$(ProjectDir)Repository\bin$(ConfigurationName)\x64\*.*" "$(ProjectDir)\bin$(ConfigurationName)\x64\" /Y 
copy "$(ProjectDir)Repository\bin$(ConfigurationName)\x86\*.*" "$(ProjectDir)\bin$(ConfigurationName)\x86\" /Y

我能够在 visual studio 中解决这个问题,但是当我去发布软件并创建一个 .msi 时,我忘记了目录并且还必须为我的 .msi 创建它们。

我没试过,但也许你可以将 Sqlite Nuget 包安装到你的 WPF 项目中。