为什么我的数据库没有打开?

时间:2016-03-04 21:56:19

标签: windows-phone-8.1 sqlite-net

我在Windows 8.1移动应用程序中使用SQLite,当我尝试从数据库中删除某些内容时,我在方法RunInTransaction中得到一个例外:

Cannot create commands from unopened database.

但是当我尝试插入一些东西时效果很好! 这是插入方法:

// Inserts a new place in the Places table.   
public void InsertPlace(PlacesTable place) {
    using (var dbConn = new SQLiteConnection(App.DB_PATH)) {
        dbConn.RunInTransaction(() => {
            dbConn.Insert(place);
        });
    }
}

这是删除方法:

// Deletes all the places from the database.  
public void DeletePlaces() {
    using (var dbConn = new SQLiteConnection(App.DB_PATH)) {
        dbConn.RunInTransaction(() => {
            dbConn.DropTable<PlacesTable>();
            dbConn.CreateTable<PlacesTable>();
            dbConn.Dispose();
            dbConn.Close();
        });
    }
}

为什么在第二种情况下会发生此异常?

所以,我发现DisposeClose对此异常负责,但我希望有人解释为什么会发生这种情况。 Close导致问题,因为我有using (var dbConn = new SQLiteConnection(App.DB_PATH))Dispose出于类似原因? 我在一个教程中找到了这个,所以我花了一些时间才认为代码有错误。

0 个答案:

没有答案