Как я могу обновить строку в DataTable в VB.NET? - PullRequest
8 голосов
/ 05 марта 2009

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

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

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

Ответы [ 3 ]

15 голосов
/ 05 марта 2009

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

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

dtResult.Rows(i)("Foo") = strVerse
6 голосов
/ 05 марта 2009

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

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

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

5 голосов
/ 13 февраля 2013
Dim myRow() As Data.DataRow
myRow = dt.Select("MyColumnName = 'SomeColumnTitle'")
myRow(0)("SomeOtherColumnTitle") = strValue

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...