Come posso aggiornare una riga in una DataTable in VB.NET?
Domanda
Ho il seguente codice:
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
Voglio aggiungere un strVerse
alla riga corrente.
Cosa sto sbagliando?
Soluzione
Il problema che stai riscontrando è che stai cercando di sostituire un intero oggetto riga. Ciò non è consentito dall'API DataTable. Invece devi aggiornare i valori nelle colonne di un oggetto riga. Oppure aggiungi una nuova riga alla raccolta.
Per aggiornare la colonna di una particolare riga è possibile accedervi per nome o indice. Ad esempio, potresti scrivere il seguente codice per aggiornare la colonna " Foo " per essere il valore strVerse
dtResult.Rows(i)("Foo") = strVerse
Altri suggerimenti
Puoi accedere alle colonne per indice, per nome e alcuni altri modi :
dtResult.Rows(i)("columnName") = strVerse
Probabilmente dovresti assicurarti che il tuo DataTable
abbia prima delle colonne ...
Dim myRow() As Data.DataRow
myRow = dt.Select("MyColumnName = 'SomeColumnTitle'")
myRow(0)("SomeOtherColumnTitle") = strValue
Il codice sopra crea un'istanza di DataRow. Dove " dt " è una DataTable, si ottiene una riga selezionando qualsiasi colonna (lo so, suona all'indietro). Quindi puoi impostare il valore di qualsiasi riga desideri (ho scelto la prima riga o " myRow (0) "), per qualsiasi colonna desideri.