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