如何使用DbDataRecord.GetValues填充DataRow?

时间:2010-09-14 15:54:39

标签: vb.net sqldatareader datarow

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

所以,我是否完全吠叫了错误的树?或者,如果我只是有一点错误,那是什么?

1 个答案:

答案 0 :(得分:1)

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