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からの結果ではなくnull値で埋められます。

DbDataRecordのフィールドをループして、次のように1つずつ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 に答える