【问题标题】:Property 'item' is 'Read Only'属性“项目”是“只读”
【发布时间】: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


【解决方案1】:

您无法更改数据读取器的值。而不是这个

      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

做这样的事情

         If dr(3).ToString() = "D" Then    
            lvRequests.Items(lvRequests.Items.Count - 1).SubItems.Add("destroyed")

         ElseIf dr(3).ToString = "O" Then
            lvRequests.Items(lvRequests.Items.Count - 1).SubItems.Add("out")

         Else

            lvRequests.Items(lvRequests.Items.Count - 1).SubItems.Add(dr(3).ToString())
         End If

【讨论】:

  • 莲花,谢谢。 1个问题。我需要修改不添加。这只是添加了另一列并阻止我的第 4 列显示
  • @user1532468 我不明白
  • 莲花。对不起这是我的错。谢谢
  • @user1532468 没问题 ;)
猜你喜欢
  • 1970-01-01
  • 2010-11-22
  • 2014-01-09
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 2021-11-19
  • 2011-08-11
相关资源
最近更新 更多