用自定义DBConnection类包装SQLiteConnection - c#

我正在尝试使用sqlite + C#。我发现SQLite-lib不是标准库,因此我按引用添加了它。

由于我经常使用该类,因此我考虑创建一个自己的类,该类负责所有工作。

现在,这是我的数据库类:

class DBConnection
{

    public SQLiteConnection m_dbConnection;

    public DBConnection()
    {
        Open();
    }

    private void Open()
    {
        m_dbConnection = new SQLiteConnection("Data Source=Diary.sqlite;Version=3;");
        m_dbConnection.Open();
    }

    public void Close() 
    {
        m_dbConnection.Close();
    }

} 

现在,在另一个Form中,我正在尝试访问它:

private void FrmLogin_Load(object sender, EventArgs e)
    {
        DBConnection DBConnection = new DBConnection();
        string sql = "SHOW TABLES";
        SQLiteCommand command = new SQLiteCommand(sql, DBConnection);
        SQLiteDataReader reader = command.ExecuteReader();
        Console.WriteLine(reader);
    }

但是,这最终导致以下错误:

错误CS1503参数2:无法从“ FFR2.DBConnection”转换为“ System.Data.SQLite.SQLiteConnection”

我尝试在我的DBConnection-class中继承此SQLiteConnection:

class DBConnection : SQLiteConnection,但这也不对。我想要一个类,该类会自动打开数据库,在我的调用中关闭并按需生成命令,如示例中所示。

感谢您的任何建议

参考方案

我正在一个学习项目上,正在尝试入门
sqlite + C#。我发现SQLite-lib不是标准库,所以
我根据参考添加了它。

请注意,确切地说,您是“标准库”的意思,但是据我了解,他们在nuget包中提供的DbConnection确实实现了IDbConnection接口,并且通常实现了is an ADO.NET provider for SQLite

如果您将连接更改为SQLite连接,则代码应正常工作

   var DBConnection = new SQLiteConnection("Data Source=Diary.sqlite;Version=3;");
   string sql = "SHOW TABLES;";
   DBConnection.Open();
   SQLiteCommand command = new SQLiteCommand(sql, DBConnection);
   SQLiteDataReader reader = command.ExecuteReader();

注意:您应该布置连接,就像使用连接将语句包装到using语句中一样容易。

using(var connection = new SQLiteConnection("Data Source=Diary.sqlite;Version=3;"))
{
   connection.Open();
   var command = new SQLiteCommand(sql, DBConnection);
   var reader = command.ExecuteReader();
   //do stuff
}

这样可以确保在执行该块后立即关闭连接。

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

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

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

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

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

每个文件合并后添加换行 - python

我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…

Json到php,json_decode返回NULL - php

我正在用PHP进行JSON解析器的一些API,用于存储有关遗产的信息。我在解析时遇到问题,因为它返回的是NULL值而不是数组或对象。简单的JSON代码可以很好地解析,但是可以这样:{"success":true,"totalCount":1,"data":[{"id":99694…