Como posso atualizar uma linha em um DataTable em VB.NET?
Pergunta
Eu tenho o seguinte código:
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
Eu quero adicionar um strVerse
para a linha atual.
O que estou fazendo de errado?
Solução
O problema que você está correndo em é que você está tentando substituir um objeto linha inteira. Isso não é permitido pela API DataTable. Em vez disso você tem que atualizar os valores nas colunas de um objeto de linha. Ou adicionar uma nova linha para a coleção.
Para atualizar a coluna de uma linha especial que você pode acessá-lo pelo nome ou índice. Por exemplo, você pode escrever o seguinte código para atualizar a coluna "Foo" para ser o valor strVerse
dtResult.Rows(i)("Foo") = strVerse
Outras dicas
Você pode acessar colunas por índice, pelo nome e alguns outras maneiras :
dtResult.Rows(i)("columnName") = strVerse
Você provavelmente deve se certificar que seu DataTable
tem algumas colunas primeiro ...
Dim myRow() As Data.DataRow
myRow = dt.Select("MyColumnName = 'SomeColumnTitle'")
myRow(0)("SomeOtherColumnTitle") = strValue
código acima instancia um DataRow. Onde "dt" é um DataTable, você tem uma linha selecionando qualquer coluna (eu sei, sons para trás). Então você pode, em seguida, definir o valor de qualquer linha que você quer (eu escolhi a primeira linha, ou "myRow (0)"), por qualquer coluna que deseja.