使用.NET无法在Sqlite中附加数据库

时间:2012-04-18 05:59:12

标签: .net sqlite system.data.sqlite

我在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;
    }

附加数据库后,此方法返回一个仅包含主表的列表。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

Sqlite不会保留附加的数据库。每次打开和关闭连接时,都会忘记附加的数据库。