如何从sql调用复选框值以在表单vb.net上显示

时间:2015-03-31 21:57:08

标签: vb.net

我这样做但不起作用只适用于第一个记录,它在插入和更新中工作 我在sql中存储为true或false

Sub db_load()

    On Error Resume Next

    Dim pringdata As String = "SELECT custcode_" & _
  ",custname_" & _
  ",custname2_" & _
  ",phone_" & _
  ",mobile_" & _
  ",custadd_" & _
  ",date_" & _
  ",cutomerzone_ " & _
  ",check_ " & _
  " FROM custInfo  "

    Dim sqlconload As New SqlConnection(sqlcon)
    sqlconload.Open()
    Dim da As New SqlDataAdapter(pringdata, sqlconload)
    ds.Clear()
    da.Fill(ds, "custInfo")

    For i As Integer = ds.Tables(0).Rows.Count = 0 To -1

        If ds.Tables(0).Rows(i).Item("check_") = "true" Then
            checkActive.Checked = True
        Else
            checkActive.Checked = False
        End If
    Next



    sqlconload.Close()

1 个答案:

答案 0 :(得分:0)

我认为您指的是特定客户,因为您只设置了一个复选框?您需要修改查询以匹配该查询。

接下来,检查您如何存储“检查”列。在大多数情况下,转换为Bool将解决它,但您可能需要根据可用值进行特殊处理。

此外,如果您正在查看的字段可能为空,那么您也必须考虑到这一点。

这是一个很好的模式,可以正确处理连接,命令和读者等资源。

Public Sub db_load()
    Using cn = New SqlConnection(sqlcon)
        cn.Open()
        Using cmd = New SqlCommand("SELECT custcode,custname,custname2,phone,mobile,custadddate,customerzone,check FROM custInfo", cn)
            Using dr = cmd.ExecuteReader()
                If dr.Read Then
                    checkActive.Checked = CBool(dr("check"))
                End If
            End Using
        End Using
    End Using
End Sub