私は次のコードを持っています:
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
を追加したいと思います。
私は何が間違っているのですか?
発生している問題は、行オブジェクト全体を置き換えようとしていることです。これは、DataTableAPIでは許可されていません。代わりに、行オブジェクトの列の値を更新する必要があります。または、コレクションに新しい行を追加します。
特定の行の列を更新するには、名前またはインデックスでその列にアクセスできます。たとえば、次のコードを記述して、列「Foo」を値strVerseに更新できます。
dtResult.Rows(i)("Foo") = strVerse
インデックス、名前、およびいくつかの方法で列にアクセスできます 他の方法 :
dtResult.Rows(i)("columnName") = strVerse
おそらく、最初にDataTable
にいくつかの列があることを確認する必要があります...
Dim myRow() As Data.DataRow
myRow = dt.Select("MyColumnName = 'SomeColumnTitle'")
myRow(0)("SomeOtherColumnTitle") = strValue
上記のコードは、DataRowをインスタンス化します。 「dt」がDataTableの場合、任意の列を選択することで行を取得します(私は知っています、逆に聞こえます)。次に、必要な列に任意の行の値を設定できます(最初の行、つまり「myRow(0)」を選択しました)。