如何在 VB.NET 中更新 DataTable 中的一行?

Posted

技术标签:

【中文标题】如何在 VB.NET 中更新 DataTable 中的一行?【英文标题】:How can I update a row in a DataTable in VB.NET? 【发布时间】:2010-10-11 10:42:27 【问题描述】:

我有以下代码:

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 添加到当前行。

我做错了什么?

【问题讨论】:

【参考方案1】:
Dim myRow() As Data.DataRow
myRow = dt.Select("MyColumnName = 'SomeColumnTitle'")
myRow(0)("SomeOtherColumnTitle") = strValue

上面的代码实例化了一个 DataRow。其中“dt”是一个数据表,您可以通过选择任何列来获得一行(我知道,听起来倒退)。然后你可以为你想要的任何列设置你想要的任何行的值(我选择了第一行,或“myRow(0)”)。

【讨论】:

【参考方案2】:

您遇到的问题是您试图替换整个行对象。 DataTable API 不允许这样做。相反,您必须更新行对象的列中的值。或者向集合中添加新行。

要更新特定行的列,您可以通过名称或索引访问它。例如,您可以编写以下代码将“Foo”列更新为值 strVerse

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

【讨论】:

【参考方案3】:

您可以按索引、名称和一些other ways 访问列:

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

您可能应该先确保您的DataTable 有一些列...

【讨论】:

以上是关于如何在 VB.NET 中更新 DataTable 中的一行?的主要内容,如果未能解决你的问题,请参考以下文章

VB.net 中 ,datalist.datasource 转换成datatable,如何转?

VB.NET 从 DataTable 对象将表附加到数据库

在 vb.net 中选择 Case vs Datatable.findrow 性能

检查 VB.net 的 DataTable 中是不是存在值的最简单/最快的方法?

vb.net如何查询DataGridView中数据,然后把查询到的内容显示到listview中

Datatable 正在从我为 Windows 10 构建的 VB.NET 应用程序中的 SQL 查询结果中接收 (01\dd\yyyy) 格式的日期