我在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();
}
当我提供数据库文件的路径时,该方法不会抛出任何异常。
为了测试它,我在helper类中添加了另一个类似
的方法 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;
}
附加数据库后,此方法返回一个仅包含主表的列表。
我做错了什么?
答案 0 :(得分:3)
Sqlite不会保留附加的数据库。每次打开和关闭连接时,都会忘记附加的数据库。