我在 C# 中为 Sqlite 创建了一个帮助器类(使用 Data.SQLite),我在其中放置了 GetTables、GetColumnNames 等方法。
现在我添加了 AttachDatabase 方法来附加数据库,但它似乎不起作用。
该方法的代码如下
public void AttachDatabase(string path)
{
string db_name = "attdb";
sqlConnection.Open();
SQLiteCommand scom = new SQLiteCommand(sqlConnection);
scom.CommandText = "ATTACH '"+path+"' AS " + db_name;
scom.ExecuteNonQuery();
sqlConnection.Close();
}
当我提供数据库文件的路径时,该方法不会引发任何异常。
为了测试它,我在辅助类中添加了另一个方法,就像这样
public List<string> GetAllDatabases()
{
List<string> mylist = new List<string>();
sqlConnection.Open();
SQLiteCommand scom = new SQLiteCommand("PRAGMA database_list", sqlConnection);
SQLiteDataReader sreader = scom.ExecuteReader();
while (sreader.Read())
{
string name = (sreader.GetValue(1)).ToString();
mylist.Add(name);
}
sqlConnection.Close();
return mylist;
}
附加数据库后,此方法返回一个列表,其中仅包含主表。
我究竟做错了什么?