C#如何连接WPF和SQLITE数据库的最简单方法 - c#

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

 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");
        }
    }

有了这段代码,我得到一个错误说

“发生了类型为'System.DllNotFoundException'的未处理的异常
System.Data.SQLite.dll中的附加信息:无法加载DLL
'SQLite.Interop.dll':找不到指定的模块。
(来自HRESULT的异常:0x8007007E)”

请帮忙。感谢您的任何帮助!

参考方案

我认为这是您要寻找的:Unable to load DLL 'SQLite.Interop.dll'

假设您有:

已安装SQLite(适用于Windows的正确版本)
适当的参考

Sqlite WHERE子句使用参数 - c#

尝试使用where子句运行特定查询,这就是我所拥有的。//ID is user input could be anything SqliteParameter Identifier = new SqliteParameter ("@ID", ID); string SQLText = "SELECT Email FROM Cli…

WPF-将窗口大小设置为子用户控件大小 - c#

我有一个选项卡控件,该控件动态地填充有包含各种大小的用户控件的选项卡。打开选项卡后,我希望窗口自动调整大小,使其在活动用户控件下有意义。有一种干净的方法可以做到这一点吗?我正在使用标准的mvvm模式。 参考方案 在Window类上使用SizeToContent属性。<Window x:Class="WpfApplication1.MainWi…

SQLite-无法连接数据库 - c#

背景:1.它是一个使用Sqlite databse的C#应用​​程序2.如果不存在db,则此应用程序将创建一个空的db,并将数据从服务器同步到该数据库。问题:1.有时应用程序突然崩溃。似乎有一些未处理的异常。2.即使我重新启动该应用程序,它也立即崩溃。临时解决方案:1.将数据库复制到其他位置,然后删除原始数据库。2.运行该应用程序。没有崩溃。由于不存在任何数…

SQLIte SUM日期时间 - c#

我有一个包含行和时间值的数据库。我想要该时间值的总和(通常,格式为%H:%M)。我这样使用SUM值:SELECT SUM(n_hores) FROM table; 但只有我得到0.0。我该怎么做?谢谢 参考方案 hh:mm格式的时间值为字符串,因此不能对字符串进行有意义的求和。您应该将这些时间值转换为数字(strftime(%s)返回自1970-01-01以…

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…