在SQLite中,Connected始终返回有效值(使用C#)

杰伊·古尔德

我正在尝试通过ac#WPF应用程序连接到本地.sqlite文件,并且已经构建了以下两种方法:

    private SQLiteConnection dbConn;

    public string dbPath()
    {
        dbConn = new SQLiteConnection(@"Data Source=C:\Users\ommited\file\path\ChinookSqlite.sqlite;");
        return isConnected();
    }

isConnected()方法:

    public string isConnected()
    {
        try
        {
            dbConn.Open();
            return "VALIDATED";

        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
            return "FAILED";
        }
    }

然后,通过这两个方法通过MainWindowWPF前端:

    dbConnection myDB = new dbConnection();
    public MainWindow()
    {
        InitializeComponent();
        dbConnCheck.Content = myDB.dbPath();
    }

我的问题是,如果更改显式文件路径字符串(位置,而不是文件名),则连接将无法验证。如果我更改了文件名(从ChinookSqlite.SqlitedddddddChinookSqlite.sqlite,即使文件名错误,也会生效。

谁能提供一些有关为什么发生这种情况的建议?当不使用显式字符串时,无论如何,它将始终进行验证,我用来精确检查连接的最接近的方法是使用显式文件路径字符串。

提前致谢。

皮科

如果要检查连接状态,则不应使用try/catch结构。State有财产。因此,您的isConnected方法应类似于:

public bool isConnected()
{
     if (dbConn != null && dbConn.State == ConnectionState.Open)
     {
         return true;
     }
     else
     {
         return false;
     }
}

然后更改dbPath方法。在SQLite中,您可以添加FailIfMissing=True参数,如果缺少数据库文件,则会引发异常。否则,如果找不到该文件,则会创建一个新文件:

public string dbPath()
{
    try
    {
         dbConn = 
             new SQLiteConnection(@"Data Source=C:\Users\ommited\file\path\ChinookSqlite.sqlite;
                 FailIfMissing=True");

         if (!isConnected())
         {
              dbConn.Open();
         }
    }
    catch (Exception ex)
    {
         //the database file does not exists..
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Java中的静态方法将有效值返回给调用方

来自分类Dev

C#并非所有代码路径都会在func类型的lambda表达式中返回有效值

来自分类Dev

C#操作溢出,试图将有效值分配为double

来自分类Dev

Matlab:稀疏矩阵中的有效值分配

来自分类Dev

在Fluent验证中显示有效值

来自分类Dev

什么是抽象xsd元素中的有效值

来自分类Dev

Matlab:稀疏矩阵中的有效值分配

来自分类Dev

使用熊猫和有效值列表检测CSV列中的错别字

来自分类Dev

Python 有效值?

来自分类Dev

RangeError(索引):无效值:有效值范围为空:使用Checkbox和for循环时返回0

来自分类Dev

jqBootstrapValidation不起作用,总是返回有效值;

来自分类Dev

使用NULL值或使用有效值表示NULL

来自分类Dev

AWS Elastic Beanstalk无法识别配置文件中的有效值

来自分类Dev

检查R中李克特量表的有效值

来自分类Dev

选择有效值时,输入类型日期字段中的箭头不会消失

来自分类Dev

检查R中李克特量表的有效值

来自分类Dev

错误:指定的参数超出有效值范围。在RowDataBound Gridview中

来自分类Dev

在CUDA中,我无法获得有效值

来自分类Dev

如何在R的corrplot程序包中的有效值周围画线

来自分类Dev

Cold Fusion表格中复选框的有效值是多少?

来自分类Dev

在每个组中查找第一个有效值

来自分类Dev

调用 c_str() 后的 unique_ptr 未指向有效值

来自分类Dev

如何使用javascript获取CSS属性的有效值列表?

来自分类Dev

如何使用strtol解析整数但将“ 0”保留为有效值?

来自分类Dev

使用docopt为参数指定有效值

来自分类Dev

在存储过程中使用 NULL 作为有效值

来自分类Dev

lon&lat的有效值是多少

来自分类Dev

从列表框的ScrollInfo获取有效值

来自分类Dev

用有效值初始化SymmetricAlgorithm

Related 相关文章

  1. 1

    使用Java中的静态方法将有效值返回给调用方

  2. 2

    C#并非所有代码路径都会在func类型的lambda表达式中返回有效值

  3. 3

    C#操作溢出,试图将有效值分配为double

  4. 4

    Matlab:稀疏矩阵中的有效值分配

  5. 5

    在Fluent验证中显示有效值

  6. 6

    什么是抽象xsd元素中的有效值

  7. 7

    Matlab:稀疏矩阵中的有效值分配

  8. 8

    使用熊猫和有效值列表检测CSV列中的错别字

  9. 9

    Python 有效值?

  10. 10

    RangeError(索引):无效值:有效值范围为空:使用Checkbox和for循环时返回0

  11. 11

    jqBootstrapValidation不起作用,总是返回有效值;

  12. 12

    使用NULL值或使用有效值表示NULL

  13. 13

    AWS Elastic Beanstalk无法识别配置文件中的有效值

  14. 14

    检查R中李克特量表的有效值

  15. 15

    选择有效值时,输入类型日期字段中的箭头不会消失

  16. 16

    检查R中李克特量表的有效值

  17. 17

    错误:指定的参数超出有效值范围。在RowDataBound Gridview中

  18. 18

    在CUDA中,我无法获得有效值

  19. 19

    如何在R的corrplot程序包中的有效值周围画线

  20. 20

    Cold Fusion表格中复选框的有效值是多少?

  21. 21

    在每个组中查找第一个有效值

  22. 22

    调用 c_str() 后的 unique_ptr 未指向有效值

  23. 23

    如何使用javascript获取CSS属性的有效值列表?

  24. 24

    如何使用strtol解析整数但将“ 0”保留为有效值?

  25. 25

    使用docopt为参数指定有效值

  26. 26

    在存储过程中使用 NULL 作为有效值

  27. 27

    lon&lat的有效值是多少

  28. 28

    从列表框的ScrollInfo获取有效值

  29. 29

    用有效值初始化SymmetricAlgorithm

热门标签

归档