现在是这样比如,a,b两个表是有关系的(b表中保存a表的ID).我是先查b表,把所得a表ID的结果再对a表做查询好呢?还是直接在存储过程中把两个表连起来做查询好?
一个表一个表查询代码如下:
public virtual View_Domainss_DomainSellsDataSet GetByD_Id(int D_Id) {
View_Domainss_DomainSellsDataSet stDataSet = new View_Domainss_DomainSellsDataSet();
stDataSet.EnforceConstraints = false;
SqlConnection conn = new SqlConnection(Config.connectionString);

try {
conn.Open();
stDataSet.Domains.MergeTable(new DomainsDAO().GetByD_Id(D_Id, conn).Tables[0]);


//(c)Fill DomainSell from Domains
foreach(DomainsRow row in stDataSet.Domains.Rows) {
stDataSet.DomainSell.MergeTable(new DomainSellDAO().GetAllByDS_Domain(row.D_Id, conn).Tables[0]);
}

} catch (Exception ex) {
throw(ex);
} finally {
conn.Close();
}

stDataSet.AcceptChanges();
return stDataSet;
}

解决方案 »

  1.   

    a,b表应该是一对多的关系吧,如果一次查出为一个记录集,那么a表会有庸余,如果一定需要查b表,可以使用多记录集,或者设计为关联实体类是。class a{
        //
        List<b> list_b;
    }class b{
        //
    }
      

  2.   

    链表查询比较好,注意几个问题:
    1.建好主链和外链;
    2.字段多的话采用select a.字段名... from a LEFT OUTER JOIN b on a.id=b.id,不要用select * from 表名;