Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 将复选框项保存到数据库访问_Vb.net_Ado.net - Fatal编程技术网

Vb.net 将复选框项保存到数据库访问

Vb.net 将复选框项保存到数据库访问,vb.net,ado.net,Vb.net,Ado.net,我有vb.net的申请表。 它包含ID、年龄、名称作为文本框和TC作为复选框。 我对这些项目有以下代码,但复选框项目无论是否选中都会自动保存。 那怎么办呢 [Imports System.Data.OleDb Imports System.Data Public Class Form1 Dim con As New OleDbConnection Dim cmd As New OleDbCommand Dim con_str As String = "Provider=M

我有vb.net的申请表。 它包含ID、年龄、名称作为文本框和TC作为复选框。 我对这些项目有以下代码,但复选框项目无论是否选中都会自动保存。 那怎么办呢

[Imports System.Data.OleDb
Imports System.Data
Public Class Form1
    Dim con As New OleDbConnection
    Dim cmd As New OleDbCommand
    Dim con_str As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Satyam\Documents\Database2.accdb"
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Try
        con.ConnectionString = con_str
        con.Open()
        'MsgBox(con.State)

        Dim myReader As OleDbDataReader
        cmd = New OleDbCommand("select * from Table1", con)
        myReader = cmd.ExecuteReader
        While myReader.Read()

        End While

    Catch ex As Exception
        MsgBox(ex.Message)
    Finally
        con.Close()

    End Try
End Sub

Private Sub AddTable1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddTable1.Click
    Try
        con.ConnectionString = con_str
        con.Open()
        'MsgBox(con.State)

        cmd = New OleDbCommand("insert into Table1(ID,Age,Name,TC) values ('" & IDtxt.Text & "','" & Agetxt.Text & "','" & Nametxt.Text & "','" & TCtxt.Text & "')", con)
        cmd.ExecuteNonQuery()
        MsgBox("Added Successfuly")

        Dim myReader As OleDbDataReader
        cmd = New OleDbCommand("select * from Table1", con)
        myReader = cmd.ExecuteReader
        Agetxt.Clear()

        While myReader.Read()

        End While

    Catch ex As Exception
        MsgBox(ex.Message)
    Finally
        con.Close()

    End Try

End Sub

末级

检查此代码。这是用于3个复选框的。您可以将其扩展为10个复选框。 请看这里:

    Dim hbStr As String
    Dim bgStr As String
    Dim tcStr As String

    If hb.Checked Then
        hbStr = hb.Text
    Else
        hbStr = ""
    End If

    If bg.Checked Then
        bgStr = bg.Text
    Else
        bgStr = ""
    End If

    If tc.Checked Then
        tcStr = tc.Text
    Else
        tcStr = ""
    End If

    Dim cmd As New OleDbCommand
    Dim conn As New OleDbConnection("Connection String")
    conn.Open()
    cmd.Connection = conn
    cmd.CommandType = CommandType.Text
    cmd.CommandText = "insert into Table1(ID,Age,Name,TC,HB.BG) values ('" & IDtxt.Text & "','" & Agetxt.Text & "','" & Nametxt.Text & "','" & tcStr & "','" & hbStr & "','" & bgStr & "')"
    cmd.ExecuteNonQuery()

希望这对您有所帮助。

很抱歉,它只保存TC而不保存Hb。

If Hbtxt.Checked Then
   cmd = New OleDbCommand("insert into Table1(ID,Age,Hb) values ('" & IDtxt.Text & "','" & Agetxt.Text & "','" & Hbtxt.Text & "')", con)
Else
   cmd = New OleDbCommand("insert into Table1(ID,Age,Hb,) values ('" & IDtxt.Text & "','" & Agetxt.Text & "','')", con)
End If

If TCtxt.Checked Then
  cmd = New OleDbCommand("insert into Table1(ID,Age,TC) values ('" & IDtxt.Text & "','" & Agetxt.Text & "','" & TCtxt.Text & "')", con)
Else
  cmd = New OleDbCommand("insert into Table1(ID,Age,TC) values ('" & IDtxt.Text & "','" & Agetxt.Text & "','')", con)
End If

始终使用参数以避免SQL注入。这样连接sql字符串会给您带来麻烦。还有一件事-如果不选中任何复选框,那么数据库中的相应列可能为空。如果希望它为空,请以这种方式传递该值
cmd=New-OleDbCommand(“插入到表1(ID、年龄、名称、TC)值(‘“&IDtxt.Text&“,‘“&AGETTXT.Text&“,‘“&Nametxt.Text&“,”,‘)”,con)”只需在单引号中传递空字符串
只需确保数据库中的字段不为
非空
。如果有帮助,请标记答案。:)在这种情况下,如果有三个复选框作为TC、HB、BG-那么代码是什么?那么您是指您选择的要插入的值的复选框?或者每个复选框都有不同的字段。每个复选框都有不同的字段。我尝试了此代码,但得到了一个查询-Dim con As New OleDbConnection(“连接字符串”)-初始化字符串的格式不符合从索引0开始的规范。(未处理Argumentexception)