在DropDownList里绑定数据源,
如下:
当我加上'If IsDBNull(dr.Read()) = False Then时,第一条记录就显示不出来???这是什么原因啊!跟踪了半天也不知道为什么?那位高手给指点一下!    Private Sub ddlMaxC_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlMaxC.SelectedIndexChanged
        Dim getMaxC As String
        getMaxC = ddlMaxC.SelectedItem.Value
        Dim selStr As String = "select * from art_minCat where art_maxCatID='" & getMaxC & "'"
        If scon.State = ConnectionState.Closed Then
            scon.Open()
        End If
        Dim scom As New SqlCommand(selStr, scon)        Dim dr As SqlDataReader = scom.ExecuteReader()
        'If IsDBNull(dr.Read()) = False Then
        With ddlMinC
            .DataSource = dr
            .DataTextField = "art_minCatName"
            .DataValueField = "art_minCatID"
            .DataBind()
        End With
        scom.Connection.Close()
        'End If
    End Sub

解决方案 »

  1.   

    dr.Read()是向下滚动一条记录..你使用一次..就滚动一条..因为dr.Read()始终只在内存中加载一条记录..加载后你在调用的时候刚才的记录就删除
      

  2.   

    楼上的说得对 read方法就是这样
      

  3.   

    哦,是这样啊,比如:DropDownList有11111、22222、333333、4444444等成员,每次只有22222、333333、4444444…显示,11111就是不显示出来,我把'If IsDBNull(dr.Read()) = False Then去掉就好了