我这样做但不起作用只适用于第一个记录,它在插入和更新中工作 我在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()
答案 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