使用if语句错误检查dr的值

时间:2013-12-10 17:59:09

标签: vb.net visual-studio-2010 ms-access ado.net

我的db(访问)中有一个字段,其中包含我需要在显示时更改的值。例如,如果从db收到的初始值为“D”,那么我需要将其更改为“Destroyed”。我尝试过使用各种if语句但由于缺乏编程知识而无法继续前进。 Option Strict disallows =并建议Is。

我想也许我应该看的是一个switch语句。我这样说是因为我可能需要在显示之前循环显示12个不同的值。我已经包含了我已完成的代码,如果有人可以帮助我完成此操作,我将不胜感激。非常感谢。

While dr.Read()  
    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"
        Else
            If dr(3) Is "O" Then
                .dr(3) = "out"
            End If
        End If
    End With

    lvRequests.Items(lvRequests.Items.Count - 1).SubItems.Add(dr(9).ToString())    
    lvcount += 1  
End While

1 个答案:

答案 0 :(得分:1)

首先尝试检查是否存在任何行,这会阻止NullReferenceException

 While dr.Read()  
   If dr.HasRows
   ...
   ...

这应该没问题,只需改为使用ElseIf

If dr(3) Is "D" Then
     dr(3) = "destroyed"
ElseIf dr(3) Is "O" Then
     dr(3) = "out"
End If