当前有两个DataTable,一个表示主表A,一个表示从表B,A表中的主键列fA,B表中的外键列fB,要将在fA与fB列值相同时,将B表对应行的fB1列的值赋值到A表中的fA1列中,我目前已经写好代码,但是觉得好像效率不是很好,希望能找到更好的处理方式
代码如下://将主表的结构和数据copy一份出来处理
DataTable tmpDtParentTable = fDtParentTable.Copy();
//向copy出来的主表的结构中新增一个列,用来存储之后从从表中赋值时使用
tmpDtParentTable.Columns.Add("fA1", typeof(System.String));//将从表中fB1列的值赋值到主表中新增的fA1列中
foreach (DataRow drParent in tmpDtParentTable.Rows)
{
     foreach (DataRow drChild in tmpDtChildTable.Rows)
     {
          if (drParent["fA"].Equals(drChild["fB"]))
          {
               drParent["fA1"] = drChild["fB1"];
               break;
          }
     }
}假设有主表A,从表B,两个表的结构如下:
A:
bid,type,name;
B:
id,code,value;
上面的代码主要是为了实现和如下sql语句操作时同样的效果
select A.type,B.value from A inner join B on A.type=B.code