2015-03-31 65 views
0

我这样做,但只是没有工作在第一条记录其工作适用于INSERT和UPDATE 我存储在SQL为真或假如何从SQL调用复选框值显示在表格vb.net

子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

你的for循环真的很奇怪,可能你的意思是'对于我作为整数= 0到ds.Tables(0).Rows.Count -1' – Steve 2015-03-31 22:02:36

回答

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