【发布时间】:2013-12-11 10:10:08
【问题描述】:
运行代码时出现上述错误。我认为这是因为 DataReader 是只读的,因此无法修改该值。作为一个新用户仍然需要掌握来自 php/mysql 背景的 vb.Net,有人可以告诉我正确的编码方法或提供替代方法。非常感谢
While dr.Read()
If dr.HasRows Then
lvRequests.Items.Add((dr(0)).ToString()).UseItemStyleForSubItems = False
lvRequests.Items(lvRequests.Items.Count - 1).SubItems.Add(CDate(dr(5)).ToShortDateString())
lvRequests.Items(lvRequests.Items.Count - 1).SubItems.Add(dr(1).ToString())
With lvRequests.Items(lvRequests.Items.Count - 1).SubItems.Add(dr(3).ToString())
If dr(3) Is "D" Then
dr(3) = "destroyed" <--- ERROR
ElseIf dr(3) Is "O" Then
dr(3) = "out" <--- ERROR
End If
End With
lvRequests.Items(lvRequests.Items.Count - 1).SubItems.Add(dr(9).ToString())
lvcount += 1
End If
End While
【问题讨论】:
-
您不能更改
DataReader中字段的值。填写DataTable代替它,您可以修改或 - 更好地 - 更改 SQL 中已有的值。 -
你能举个例子吗蒂姆。谢谢
-
很难没有更多信息。您尚未提供表的架构,但您可以在 sql 中使用
CASE。 -
我不能根据我的代码创建子项吗?谢谢
-
您可以为读取器返回的每一行创建一个
object,然后修改object的属性。
标签: vb.net visual-studio-2010 visual-studio