使用 VB9,我试图用几个存储过程调用的结果填充 DataTable。我试图让工作看起来像:
For Each record In New SqlCommand("exec getResults", conn).ExecuteReader
Dim dr As DataRow = dt.NewRow
record.GetValues(dr.ItemArray)
dt.Rows.Add(dr)
Next
看起来 DataRow.ItemArray 和 DbDataRecord.GetValues 应该整齐地插入在一起——它确实可以编译......但是当它运行时,DataRow 填充了空值,而不是 SqlDataReader 的结果。
我可以遍历 DbDataRecord 中的字段并将它们一一插入到 DataRow 中,例如:
For Each record In New SqlCommand("exec getResults", conn).ExecuteReader
Dim dr As DataRow = dt.NewRow
For fieldLoop = 0 To 9
dr.Item(fieldLoop) = record(fieldLoop)
Next
dt.Rows.Add(dr)
Next
但似乎不需要这样做。我没有发现 MSDN 对此有帮助。
那么,我是不是完全找错了树?或者如果我只是有一个小错误,那是什么?