我目前正在使用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();
}
}
答案 0 :(得分:0)
对于任何面临同样问题的人,这里是解决方案,community.CsharpSqlite采用与sqlite相同的命令,
ATTACH'db文件,其位置为'ofMerge;
同样快速提示:sqliteInt_h.cs文件中的断点可以帮助您调试sqlite文件中的错误代码。
static int SQLITE_CORRUPT_BKPT()
{
return sqlite3Corrupt();
}