2009-03-05 5 views
8

У меня есть следующий код:Как обновить строку в DataTable в VB.NET?

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 к текущей строке.

Что я делаю неправильно?

ответ

12

Проблема вы бежите в это что вы пытаетесь заменить весь объект строки. Это не допускается API DataTable. Вместо этого вам нужно обновить значения в столбцах объекта строки. Или добавьте новую строку в коллекцию.

Чтобы обновить столбец определенной строки, вы можете получить к нему доступ по имени или индексу. Например, вы могли бы написать следующий код, чтобы обновить столбец «Foo», чтобы быть значением strVerse

dtResult.Rows(i)("Foo") = strVerse 
5

Вы можете получить доступ к столбцы по индексу, по имени и некоторые other ways:

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

Вы, вероятно, следует убедиться, что ваш DataTable имеет некоторые столбцы первые ...

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

Код выше инстанцирует DataRow. Где «dt» - это DataTable, вы получаете строку, выбирая любой столбец (я знаю, звучит назад). Затем вы можете установить значение любой строки, которую вы хотите (я выбрал первую строку или «myRow (0)») для любого столбца, который вы хотите.

+0

Несколько слов было бы полезно – demongolem

+0

Добавлено уточнение. – vapcguy

Смежные вопросы