Как я могу обновить строку в DataTable в VB.NET?

StackOverflow https://stackoverflow.com/questions/613596

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня есть следующий код:

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top