0

使用 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 对此有帮助。

那么,我是不是完全找错了树?或者如果我只是有一个小错误,那是什么?

4

1 回答 1

1

使用该datatable.load方法并传入 datareader 对象。http://msdn.microsoft.com/en-us/library/system.data.datatable.load.aspx

于 2010-09-14T18:03:06.460 回答