日期:2014-05-18  浏览次数:20879 次

强类型的DataSet如何进行主从表的设置?
在百度上找了很长时间也没找到比较全面的资料.

我建立了两个强类型的DataTable,分别是DataTable1(销售主表,主关键字是SaleID),DataTable2(销售从表,外键是SaleID),并且建立了级联关系FK_DataTable1_DataTable2.
DataTable2中的SQL语句中用不用加上"Where SaleID=@SaleID"的字样?

现在我在form中分别加入dataGridView1和dataGridView2,分别连接到DataTable1和DataTable2.
并且在Form1的onload事件中加入
  this.dataTable1TableAdapter.Fill(this.wholeSaleMarketDataSet.DataTable1);
  this.dataTable2TableAdapter.Fill(this.wholeSaleMarketDataSet.DataTable2);
但是并不能正确的显示出从表,这是什么原因呢?


------解决方案--------------------
function GetTable2BySalesId(string salesId){
DataTable dt = this.wholeSaleMarketDataSet.DataTable2.clone();
foreach (DataRow dr in this.wholeSaleMarketDataSet.DataTable2.select("salesid = 'xxx'"))
dt.Rows.Add(new object[]{dr.ItemArray});
return dt;
}

------解决方案--------------------
“DataTable2中的SQL语句中用不用加上"Where SaleID=@SaleID"的字样?”
不用

至于你说的“不能正确的显示出从表”,是怎么个不行法?

这里有个详细的例子:
http://technet.microsoft.com/zh-cn/magazine/y8c0cxey(VS.85).aspx
注意里面的DataSource和DataMember属性

也可以看看这个:
http://topic.csdn.net/u/20120130/16/0dd6d49c-e3c8-4e87-bc9f-d99cf918ce71.html