使用ATTACH与Community.CsharpSqlite

时间:2016-06-10 13:14:11

标签: c# .net sqlite

我目前正在使用sqlite数据库进行C#。我使用Community.CsharpSqlite进行应用程序和数据库之间的连接。我希望能够在sqlite上使用ATTACH命令来安装另一个DB。

https://www.nuget.org/packages/Community.CsharpSqlite.SQLiteClient/

我能够使用System.Data.Sqlite执行此操作,但我想知道是否有人知道如何使用Community.CsharpSqlite。

目标:查询大型数据库并将结果存储在子数据库中。

计划:使用

将Big数据库附加到子数据库的连接

ATTACH'大数据库'作为ToMerge; (在子DB的连接中)

插入表格从ToMerge.table中选择*;

这是我使用 System.Data.Sqlite

取得的进展
public static void importData(String fileLoc)
        {
            string SQL = "ATTACH '" + fileLoc + "' AS TOMERGE";
            SQLiteConnection con = new SQLiteConnection("Data Source = D:\\sqirl_test\\ir1.db;Version=3");
            con.Open();
            SQLiteCommand cmd = new SQLiteCommand(SQL, con);
            int retval = 0;
            try
            {
                retval = cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                Console.WriteLine("An error occurred, your import was not completed.");
            }
            finally
            {
                cmd.Dispose();
            }

            SQL = "INSERT INTO IMAGEREPOSITORY SELECT * FROM TOMERGE.IMAGEREPOSITORY";
            cmd = new SQLiteCommand(SQL, con);
            retval = 0;
            try
            {
                retval = cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                Console.WriteLine("An error occurred, your import was not completed.");
            }
            finally
            {
                cmd.Dispose();
                con.Close();
            }
        }

1 个答案:

答案 0 :(得分:0)

对于任何面临同样问题的人,这里是解决方案,community.CsharpSqlite采用与sqlite相同的命令,

ATTACH'db文件,其位置为'ofMerge;

同样快速提示:sqliteInt_h.cs文件中的断点可以帮助您调试sqlite文件中的错误代码。

static int SQLITE_CORRUPT_BKPT()
{
return sqlite3Corrupt();
}