相关疑难解决方法(0)

如果数据库丢失,使SQLite连接失败?(删除/移动)

我里面有以下方法class DBConnection.我调用这样的方法:SQLiteConnection conn = DBConnection.OpenDB();当我想打开一个连接时,我可以执行我的查询.当我想关闭连接时,我可以调用类似的方法.

方法:

public static SQLiteConnection OpenDB()
{
    try
    {
        //Gets connectionstring from app.config
        string myConnectString =
            ConfigurationManager.ConnectionStrings[
                "LegMedSQLLite.Properties.Settings.LegMedSQLLiteDBConnectionString"].ConnectionString;

        var conn = new SQLiteConnection(myConnectString);

        conn.Open();
        return conn;
    }
    catch (SQLiteException e)
    {
        MessageBox.Show(e.ToString(), "TEST");
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

这一切都很好,花花公子.问题是尝试捕获.让我们想象以下场景:

  • 数据库文件已被移动/删除.

永远不会抛出异常.实际上,我偶然发现的第一个问题是当我执行我的第一个查询时 - 它认为没有这样的表,它会抛出自己的异常.我被这种奇怪的现象震惊了,但我很快发现SQLite创建了一个新的 空数据库.空是意味着没有表,没有,只是一个SQLT数据库文件与旧数据库同名,应该在那里.

这是一个问题,我希望应用程序在我尝试调用时立即知道是否存在错误(数据库未找到,已损坏,被其他进程使用等)SQLiteConnection conn = DBConnection.OpenDB();.

当然,我可以尝试在我的方法中调用File.Exists,但这似乎不是一个合适的解决方案.有帮助吗?

c# sqlite

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×1

sqlite ×1