gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-28 23:52:04 26 4
gpt4 key购买 nike

在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com