鉴于您不能使用链接服务器,您可能希望调查DataRelation类
在您的示例中,执行两个 SELECT:
DataSet domain = new DataSet();
DataTable dataFromA = null;
DataTable dataFromB = null;
using(SqlConnection conn1 = new SqlConnection("FirstConnectionString"))
{
DataTable dataFromA = //result from SELECT id, name FROM TableA
}
using(SqlConnection conn2 = new SqlConnection("SecondConnectionString"))
{
DataTable dataFromB = //result from SELECT id, name FROM TableB
}
domain.Tables.Add(dataFromA);
domain.Tables.Add(dataFromB);
我在这里解释了这个过程。
在内存中拥有两个数据表后,您可以在它们之间创建一个 DataRelation:
DataRelation idRelationship = new DataRelation("ABLink", dataFromA.Columns["Id"], dataFromB.Columns["Id"]);
然后,您可以随心所欲地绘制这种关系:
foreach(DataRow aRow in dataFromA.Rows)
{
//matching B Rows:
DataRow[] bRows = aRow.GetChildRows(idRelationship);
}
它实际上是两个表之间的内存索引。