现在是这样比如,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;
}
一个表一个表查询代码如下:
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;
}
//
List<b> list_b;
}class b{
//
}
1.建好主链和外链;
2.字段多的话采用select a.字段名... from a LEFT OUTER JOIN b on a.id=b.id,不要用select * from 表名;