日期:2014-05-20  浏览次数:20902 次

如何在DATASET中查找两个字段分别为某一值(含空值)的记录
有两个表tab1,tab2
tab1中有三个字段(co1,co2,co3),其中(co1,co2)唯一确定tab2中记录(co2可能为空).(相当于主键)
tab2中有三个字段(coa,cob,coc)来源于tab1表中(co1,co2).(相当于外键)

现要根据tab2于tab1的对应关系,将tab1表中co3值填入tab2表中coc字段.
请问如何实现?
(不要对tab2中每条记录用foreach遍历tab1,记录多,效率太低)

我用如下代码,结果提示co2有空值,不能通过.

  keys   =   new   DataColumn[2];

keys[0]   =   dataSet.Tables[ "tab1 "].Columns[ "co1 "];
               
keys[1]   =   dataSet.Tables[ "tab1 "].Columns[ "co2 "];
                               
dataSet.Tables[ "tab1 "].PrimaryKey   =   keys;
         
foreach   (DataRow   dr1   in   dataSet.Tables[ "tab2 "].Rows)                        
{                                    
    string[]   saTemp   =new   string[2];
                                     
    saTemp[0]   =   dr1[ "coa "].ToString();
                                     
    saTemp[1]   =   dr1[ "cob "].ToString();
                         
    DataRow   dr2   =   dataSet.Tables[ "tab1 "].Rows.Find(saTemp);
                           
    if   (dr2   !=   null)
                                             
    dr1[ "coc "]   =   dr2[ "coc "];          
}

请教高手

------解决方案--------------------
在DATASET中加入这两个表,再设定两个表的realtion,再用getchildrows()取得关联记录.