Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#如何以最简单的方式连接WPF和SQLITE数据库_C#_Wpf_Sqlite_Connection - Fatal编程技术网

C#如何以最简单的方式连接WPF和SQLITE数据库

C#如何以最简单的方式连接WPF和SQLITE数据库,c#,wpf,sqlite,connection,C#,Wpf,Sqlite,Connection,wpf和sqlite的新特性。我只想为我的项目建立一个内部数据库。我希望这个项目能够被其他人使用,所以我不能使用mysql作为数据库。所以我搜索了内部数据库并决定尝试sqlite。我正在寻找教程,但它们确实令人困惑。我对数据库很熟悉,我知道查询,但现在我只需要知道启动WPF和sqlite之间的连接所需的设置。下面是我的代码(我为我的sqlite连接创建了一个不同的类): 用这个代码我得到一个错误 发生“System.DllNotFoundException”类型的未处理异常 在System.Da

wpf和sqlite的新特性。我只想为我的项目建立一个内部数据库。我希望这个项目能够被其他人使用,所以我不能使用mysql作为数据库。所以我搜索了内部数据库并决定尝试sqlite。我正在寻找教程,但它们确实令人困惑。我对数据库很熟悉,我知道查询,但现在我只需要知道启动WPF和sqlite之间的连接所需的设置。下面是我的代码(我为我的sqlite连接创建了一个不同的类):

用这个代码我得到一个错误

发生“System.DllNotFoundException”类型的未处理异常 在System.Data.SQLite.dll中的其他信息:无法加载dll “SQLite.Interop.dll”:找不到指定的模块。 (HRESULT的例外:0x8007007E)

请帮忙。任何帮助都将不胜感激,谢谢

遵循以下步骤:

  • 在项目中添加2个文件夹,并将其命名为x64和x86
  • 分别为x64和x86添加SQLite.interop.dll(相同情况下使用谷歌)
  • 在SQLite.interop.dll属性中,设置 “构建操作”-->内容 和“复制到输出目录”->始终复制/如果更新,则复制

我想这就是你想要的:

假设你有:

  • 已安装SQLite(适用于windows的正确版本)

  • 适当的参考


我没有sqlite.interop.dll。internet上要下载的正确文件在哪里?从Nuget安装时,请检查软件包目录。它将具有SQLite.interop.dll
 sqlite class

 using System.Data.SQLite;
 namespace StartMyApps
 {
     class StartMyAppDb_sqlite
     {
       public SQLiteConnection myConn;
       public SQLiteCommand myComm;
       public SQLiteDataReader myReader;

       public void openConnection(string query)
       {
         myConn = new SQLiteConnection("Data Source=StartMyApplication.sqlite;Version=3;");
         myConn.Open();
         myComm = new SQLiteCommand(query, myConn);
         myComm.ExecuteNonQuery();
         myReader = myComm.ExecuteReader();
       }      
    }
 }

 Main class (has a button to trigger the connection and will pass a query)

   private void hide_btn_Click(object sender, RoutedEventArgs e)
    {
        sqliteDB.openConnection("select *from application where app_id='1' and app_name='chrome.exe';");

        bool hasAccount = false;
        while (sqliteDB.myReader.Read())
        {
            hasAccount = true;
        }

        if (hasAccount == false)
        {
            MessageBox.Show("Logged in");
        }

        else if (hasAccount == true)
        {
            MessageBox.Show("Username invalid");
        }
    }