使用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对此有用。
所以,我是否完全吠叫了错误的树?或者,如果我只是有一点错误,那是什么?
答案 0 :(得分:1)
使用datatable.load
方法并传入datareader对象。 http://msdn.microsoft.com/en-us/library/system.data.datatable.load.aspx