c# - 包含 2 个数据库的 SQL 查询

标签 c# mysql sql database ms-access

在 C# 中,我想执行一个使用 2 个不同数据库的查询(一个是本地 Access,另一个是远程数据库,是 MySQL)

我可以在 VBA Access 中做到这一点,但是如何在 C# 中做同样的事情??

这就是我在 Access 中的制作方式:

在表中链接我的 2 个不同的表/数据库

在 VBA 中:

sSQL = "INSERT INTO DB1tblClient SELECT * FROM DB2tblClient"  
CurrentDb.Execute sSQL  

如何在 C# 中执行此 SQL? (使用什么对象,等等......如果可以的话,示例代码)

谢谢!

最佳答案

有两种方法可以做到这一点。一种是在 Access 上设置链接表并运行单个查询。另一种方法是从 c# 运行两个查询并将它们与 linq 连接。

第一种方式更好。如果你真的必须用 linq 来做,这里有一些示例代码:

dWConnection.Open();
dWDataAdaptor.SelectCommand = dWCommand1;
dWDataAdaptor.Fill(queryResults1);
dWDataAdaptor.SelectCommand = dWCommand2;
dWDataAdaptor.Fill(queryResults2);
dWConnection.Close();

IEnumerable<DataRow> results1 = (from events in queryResults1.AsEnumerable()
                       where events.Field<string>("event_code").ToString() == "A01"
                       ||  events.Field<string>("event_code").ToString() == "ST"
                       select events ) as IEnumerable<DataRow>;


var results2 = from events1 in queryResults1.AsEnumerable()
    join events2 in queryResults2.AsEnumerable()
    on (string)events1["event_code"] equals (string)events2["event_code"]

    select new
            {
                  f1 = (string)events1["event_code"],
                  f2 = (string)events2["event_name"]
            };

DataTable newDataTable = new DataTable();
newDataTable = results1.CopyToDataTable<DataRow>();

明白为什么我说链接表更好吗?

关于c# - 包含 2 个数据库的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14878131/

相关文章:

c# - Telerik RadWindow 和 Response.Redirect - JavaScript 错误

c# - C# 中的嵌套泛型问题

c# - 深度优先搜索图无法正常工作

mysql - 我如何滞后 MySQL 中的列?

MYSQL 返回超出范围的日期

c# - 使用 Code Contracts 指定返回值可能为 null

mysql - 拉拉维尔 : Query builder builder returning different result than actual mysql query

具有两列的 MYSQL 子查询

sql - 每个账户多于一张信用卡

sql - SQL触发器中的更新函数