web-dev-qa-db-ja.com

VB.NETのDataTableの行を更新するにはどうすればよいですか?

私は次のコードを持っています:

Dim i As Integer = dtResult.Rows.Count
For i = 0 To dtResult.Rows.Count Step 1
    strVerse = blHelper.Highlight(dtResult.Rows(i).ToString, s)
    ' syntax error here
    dtResult.Rows(i) = strVerse 
Next

現在の行にstrVerseを追加したいと思います。

私は何が間違っているのですか?

9
Angkor Wat

発生している問題は、行オブジェクト全体を置き換えようとしていることです。これは、DataTableAPIでは許可されていません。代わりに、行オブジェクトの列の値を更新する必要があります。または、コレクションに新しい行を追加します。

特定の行の列を更新するには、名前またはインデックスでその列にアクセスできます。たとえば、次のコードを記述して、列「Foo」を値strVerseに更新できます。

dtResult.Rows(i)("Foo") = strVerse
19
JaredPar

インデックス、名前、およびいくつかの方法で列にアクセスできます 他の方法

dtResult.Rows(i)("columnName") = strVerse

おそらく、最初にDataTableにいくつかの列があることを確認する必要があります...

7
Ken Browning
Dim myRow() As Data.DataRow
myRow = dt.Select("MyColumnName = 'SomeColumnTitle'")
myRow(0)("SomeOtherColumnTitle") = strValue

上記のコードは、DataRowをインスタンス化します。 「dt」がDataTableの場合、任意の列を選択することで行を取得します(私は知っています、逆に聞こえます)。次に、必要な列に任意の行の値を設定できます(最初の行、つまり「myRow(0)」を選択しました)。

5
vapcguy