Вы можете объединить свои результирующие наборы в один DataTable, используя два SqlDataAdapter для заполнения DataTable из двух баз данных соответственно. Вот пример.
DataTable dt = new DataTable();
using(SqlDataAdapter a1 = new SqlDataAdapter("SELECT * FROM [user1]", "Data Source=DBServer1;Initial Catalog=Database1;User ID=user;Password=***"))
a1.Fill(dt);
using(SqlDataAdapter a2 = new SqlDataAdapter("SELECT * FROM [user2]", "Data Source=DBServer2;Initial Catalog=Database2;User ID=user;Password=***"))
a2.Fill(dt);
a1.Fill (dt) инициализирует таблицу данных и заполняет ее. a2.Fill (dt) просто добавляет строки в DataTable dt из другого набора результатов. В этом примере предполагается, что два источника данных имеют одинаковую схему. Если нет, то вы должны подготовить таблицу данных для размещения обоих наборов результатов.
Надеюсь, это поможет.