1

私はこのようなクエリを持っています:

Dim dr As SqlDataReader
    Dim str As String = "SELECT DISTINCT Location_tbl.LocName, Location_tbl.Locid FROM Transaction_tbl"
     Dim cmd As New SqlCommand(str, con.connect)
            dr = cmd.ExecuteReader
            While dr.Read
               ChkdLST.Visible = True
                ChkdLST.Items.Add(dr("LocName"))
            End While
            dr.Close()
            con.disconnect()

リーダーにデータが含まれている場合は、chkdlst を表示したいだけです..だから、datareader が null であるかどうかを確認したい While dr.Read 場合は、データが含まれている場合は表示する必要があります。それ以外の場合は、ChkdLST.Visible = false..while dr.readデータが含まれているかどうかを確認できます

4

1 に答える 1

1

行が返されなくても、データ リーダーは null になりません。あなたはおそらく欲しい:

If dr.HasRows() Then
     'Code
 End If

また、リーダーに行がない場合、ループは実行されないため、リーダーが行を返さないときに特別なロジックを実行する場合は、必ずRead()ループの外に配置してください。

于 2013-11-04T12:09:36.103 に答える