【发布时间】:2020-11-29 19:18:46
【问题描述】:
我在 C# 中使用 SQLite,我首先使用 System.IO 创建一个数据库文件:
System.IO.File.Create(directoryLineEdit.Text + @"\" + nameLineEdit.Text + ".db");
现在,我尝试打开这个新创建的数据库:(其中 location 是存储文件的路径,不要介意 path 参数,即在这里不相关)
public void loadSpaceWalls(string path, string location)
{
using (SQLiteConnection conn = new SQLiteConnection("Data Source=" + location))
{
conn.Open();
using (SQLiteCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT name FROM sqlite_master WHERE type='table';";
cmd.CommandType = System.Data.CommandType.Text;
SQLiteDataReader rdr = cmd.ExecuteReader();
Godot.Collections.Array wallsArray = new Godot.Collections.Array();
while (rdr.Read())
wallsArray.Add(rdr[0]);
rdr.Close();
GetNode(path).Call("updateSpaceWalls", wallsArray);
wallsArray.Dispose();
}
conn.Close();
}
}
程序因System.Data.SQLite.SQLiteException (0x800007FF): unable to open database file 而崩溃。现在,如果我重新打开我的程序,然后再次访问该文件(相同的代码,唯一的区别是该文件没有被程序“新创建”,它现在已经存在),它工作正常并且不崩溃。
这让我很困惑???? 关于为什么会这样的任何想法?
【问题讨论】: