c# - 在 ADO.NET 中合并对两个数据库的查询

标签 c# sql database ado.net

我正在使用 C# 开发一个项目,该项目利用 ADO.NET 连接到数据库。查询并不是非常复杂,但是由于项目的性质,我们有两个具有相同结构的数据库。一个是固定的信息,这些信息可能每年从外部来源更新一次。另一个保持相同的结构,但它用于自定义用户条目。问题是,这意味着相同的查询会被发送到两个数据库。因为我不想重复一堆代码,所以我想知道是否有人知道一个相对简单的过程来组合对两个结构相同的数据库的查询并自动组合结果。

最佳答案

DataAdapter.Fill(DataTable) 会将结果附加到您传递给它的表中。所以假设 cs1 和 cs2 是两个连接字符串:

DataTable dt = new DataTable();
string selectSql = "SELECT STUFF FROM SOMEWHERE";
foreach (String cs in new string[] { cs1, cs2 }) {
    using (OdbcDataAdapter adp = new OdbcDataAdapter(selectSql, cs)) {
        adp.Fill(dt);
    }
}

第一次调用初始化 DataTable 并用数据库 1 的结果填充它,第二次调用附加数据库 2 的数据。

关于c# - 在 ADO.NET 中合并对两个数据库的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8683153/

相关文章:

c# - 如何取消正在进行的 XslTransform.Transform

sql - 如何获取插入行的标识?

sql - 如何正确连接表并使用 group by 来汇总 MySQL 中的数据?

sql - 如果条件为假,是否优化了条件子查询?

mysql - MYSQL中无法写入 'find the products with at least such features'

c# - 我想打开一个excel文件并等待用户编辑并保存它

c# - 事件目录 : Query Performance

javascript - axios react 获取实时数据展示

C#- "Object reference not set to an instance of an object"

database - 设计摘要电子邮件实现的方法?