使用SqliteCommand.CommandText附加数据库

时间:2018-06-14 15:23:14

标签: c# sql sqlite asp.net-core

我正在尝试运行涉及连接来自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)

0 个答案:

没有答案