我正在尝试运行涉及连接来自2个不同数据库的表的查询。 (的 SQLite的)
注意:这是 .NET Core 2.0
上的类库以下是代码:
using Microsoft.Data.Sqlite;
//Connection string to initial DB
SqliteConnection cnn = new SqliteConnection(@"Data Source=C:\path\Local\SQLite\DATABASE1.db");
cnn.Open();
SqliteDataReader reader;
SqliteCommand cmd = new SqliteCommand();
using (cmd = cnn.CreateCommand()){
cmd.CommandText = @"
ATTACH DATABASE 'C:\path\Local\SQLite\DATABASE2.db' AS database2;
SELECT act.ID, ap.Name As AppName, au.EmailAddress, et.Name
FROM database1table1 act
INNER JOIN database1table2 et on et.id = act.descId
INNER JOIN database2.table1 ap on ap.ID = act.AppID
INNER JOIN database2.table2 au on au.ID = act.UserID";
cmd.CommandType = CommandType.Text;
// V ERROR occurs here V
reader = secure_cmd.ExecuteReader();
}
// Do stuff with reader
cnn.Close();
在 C#-environment 中,我得到的错误是:
Microsoft.Data.Sqlite.SqliteException(0x80004005):SQLite错误1:'没有这样的表:database2.table1'。
我还有用于SQLite的数据库浏览器(这是我最初测试所有内容的地方)。我最初使用GUI附加('文件' - >'附加数据库'选项),查询按预期工作。
但是当我运行时使用SQL编辑器附加:
ATTACH DATABASE 'C:\path\Local\SQLite\DATABASE2.db' AS database2;
我收到此错误:
cannot ATTACH database within transaction: ATTACH DATABASE 'DATABASE2.db' AS database2;
我已尝试在其他命令上设置附加。 我也尝试过这里发布的建议:Merging two SQLite database files (C# .NET)