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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top