2011-03-28 44 views
1

存储过程返回多个表,结果集被分配给一个DataSet。我可以使用每个表的名称访问DataSet中的表吗?dataset c#datatable

对于eg.:-

的DataSet DS =选择(despatch_Packing_ID);

DataSet包含4个表格。

我强加于访问表为 DataTable dtSales = ds.Tables [0];

如何访问数据表为 DataTable dtSales = ds.Tables [“Sales”]; //销售是从我得到数据的表格

在此先感谢。

+1

你应该能够使用我相信名称:http://msdn.microsoft.com/en-us/library/system.data.datatablecollection.item(v = VS.90).aspx](http://msdn.microsoft.com/en-us/library/system.data.datatablecollection.item(v = VS.90).aspx) – Prescott 2011-03-28 06:12:41

回答

0

问题是存储过程中的查询可能跨越多个表和视图,甚至只是返回一个值。

DataTable将如何获取其名称?

+0

是的。你是对的。所以我不能使用我喜欢的方法:( – Rauf 2011-03-28 06:36:54

0

我想这是行不通的,因为返回的数据可能是由多个连接的表格产生的。在这种情况下,无法通过名称来识别它们。但我没有检查自己,所以这只是我的猜测。

1

默认情况下,由DbDataAdapter的生成的表名称将有一个名字“表”,“表1”,“表2”,...

您可以通过specifying DataTableMappings覆盖。

例如:

DbDataAdapter adapter = ... 
... 
adapter.TableMappings.Add("Table", "Sales"); 
adapter.TableMappings.Add("Table1", "Customers"); 
... 
adapter.Fill(myDataSet); 
...