C# SqlDataAdapter 与来自多个数据库的表的 JOIN

Posted

技术标签:

【中文标题】C# SqlDataAdapter 与来自多个数据库的表的 JOIN【英文标题】:C# SqlDataAdapter with JOIN of tables from multiple databases 【发布时间】:2020-04-15 12:22:58 【问题描述】:

由于定义 SqlDataAdapter 的 sintax 是:

SqlDataAdapter adapter = new SqlDataAdapter(querystring, connectionstring);

如何连接来自多个数据库的表并使用单个连接字符串?

谢谢。

【问题讨论】:

【参考方案1】:

根据您的数据库,可能会使用 DBLink。

例如对于 Oracle: https://oracle-base.com/articles/misc/managing-database-links

这在数据库级别将数据库连接在一起,并允许某些表、视图等可用于从一个数据库到另一个数据库的定义操作。

然后,从用户的角度来看,您只需连接到一个 DB,执行您的查询,然后它可以使用从多个 DB 连接的表,甚至不知道。

但也有缺点,包括安全性(更复杂的安全性)和性能。

在某些情况下,分别在两个 DB 上执行两个查询,然后将数据连接到应用程序的内存中可能会有所帮助。 但只有您可以判断,并且可能需要运行测试来验证哪个最适合您。

【讨论】:

我同意 jason.kaisersmith,最好的方法是在不同的连接中加载数据,然后加入它们。我建议使用DataSet 对象来提高性能。

以上是关于C# SqlDataAdapter 与来自多个数据库的表的 JOIN的主要内容,如果未能解决你的问题,请参考以下文章

创建新的 SqlDataAdapter 时出现 C# InvalidOperationException

SqlDataAdapter 更新插入 与 InsertBulkCopy

C# SqlDataAdapter.Update()

C#中SqlDataAdapter的使用小结

C# SqlDataAdapter 不填充数据集

C# SQLDataAdapter - 不将数据插入数据库