我有一个在 EnumerableRowCollection(Of System.Data.DataRow) 中传递的方法,我希望能够使用底层数据表。最终我希望能够使用该数据表的列集合。
目前我使用
Dim t As System.Data.DataTable = TryCast(x(0), DataRow).Table
哪里x is EnumerableRowCollection(Of System.Data.DataRow
)
这很好用,除了行数为零的情况。
我确信底层数据表定义仍然存在,因为如果我针对 x '添加手表',我可以通过调试器访问它
在监视窗口中我看到
x|{System.Data.EnumerableRowCollection(of System.Data.DataRow)}
System.Data.EnumerableRowCollection(of System.Data.DataRow)|{System.Data.EnumerableRowCollection(of System.Data.DataRow)}
ElementType| {Name="DataRow" FullName = "System.Data.DataRow"}
EnumerableRows|In-Memory Query
Table|{mydatatable}
我追求的是 mydatatable
如果我尝试
x.Table
然后我得到
“表”不是“System.Collections.Generic.IEnumerable(Of System.Data.DataRow)”的成员。
在我的情况下, enumerablerowcollection 很可能是使用带有 orderby 的 LINQ 从数据表创建的
Dim z = (From d In mydataset.mydatatable.OrderBy(Function(c) c.myfield))
总之,即使 EnumerableRows 的计数为零,我也希望能够从 EnumerableRowCollection(Of System.Data.DataRow) 访问数据表。如果这是不可能的,那么请你帮我解释一下监视窗口如何显示这个。我可以添加我在监视窗口中看到的图像吗?我添加了调试器显示的图像,它如何获取此表信息