如何在 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 中选择 Case vs Datatable.findrow 性能
检查 VB.net 的 DataTable 中是不是存在值的最简单/最快的方法?
vb.net如何查询DataGridView中数据,然后把查询到的内容显示到listview中
Datatable 正在从我为 Windows 10 构建的 VB.NET 应用程序中的 SQL 查询结果中接收 (01\dd\yyyy) 格式的日期