Как я могу обновить строку в 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 в текущую строку.

Что я делаю не так?


person Tola    schedule 05.03.2009    source источник


Ответы (3)


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

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

dtResult.Rows(i)("Foo") = strVerse
person JaredPar    schedule 05.03.2009


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

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

person vapcguy    schedule 13.02.2013