如何使用vb.net将选中和未选中的复选框从datagridview保存到数据库?

问题描述 投票:0回答:1
   Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
    Try
        myconnection.Open()
        'Declaration of Variables
        Dim str As String

        Dim vCourseCode As String
        Dim vSection As String
        Dim vSurname As String
        Dim vFirstName As String
        Dim vMiddleInitial As String
        Dim vDate1 As Boolean
        Dim vDate2 As Boolean
        Dim vDate3 As Boolean
        Dim vDate4 As Boolean
        Dim vDate5 As Boolean
        Dim vDate6 As Boolean
        Dim vDate7 As Boolean
        Dim vDate8 As Boolean
        Dim vDate9 As Boolean
        Dim vAbsent As String
        Dim vPresent As String
        Dim vEQ As String


        For x As Integer = 0 To DataGridView1.Rows.Count - 2
            vCourseCode = DataGridView1.Rows(x).Cells(1).Value
            vSection = DataGridView1.Rows(x).Cells(2).Value
            vSurname = DataGridView1.Rows(x).Cells(3).Value
            vFirstName = DataGridView1.Rows(x).Cells(4).Value
            vMiddleInitial = DataGridView1.Rows(x).Cells(5).Value 
            vAbsent = DataGridView1.Rows(x).Cells(6).Value
            vPresent = DataGridView1.Rows(x).Cells(7).Value
            vEQ = DataGridView1.Rows(x).Cells(8).Value
            vDate1 = DataGridView1.Rows(x).Cells(0).Value
            vDate2 = DataGridView1.Rows(x).Cells(1).Value
            vDate3 = DataGridView1.Rows(x).Cells(2).Value
            vDate4 = DataGridView1.Rows(x).Cells(3).Value
            vDate5 = DataGridView1.Rows(x).Cells(4).Value
            vDate6 = DataGridView1.Rows(x).Cells(5).Value
            vDate7 = DataGridView1.Rows(x).Cells(6).Value
            vDate8 = DataGridView1.Rows(x).Cells(7).Value
            vDate9 = DataGridView1.Rows(x).Cells(8).Value

            str = "Insert into StudentsAttendance ([CourseCode],[Section],[Surname],[FirstName],[MiddleName],[Date1],[Date2],[Date3],[Date4],[Date5],[Date6],[Date7],[Date8],[Date9],[Absent],[Present],[EQ]) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"


            Dim cmd As OleDbCommand = New OleDbCommand(str, myconnection)
            cmd.Parameters.AddWithValue("@CourseCode", vCourseCode)
            cmd.Parameters.AddWithValue("@Section", vSection)
            cmd.Parameters.AddWithValue("@Surname", vSurname)
            cmd.Parameters.AddWithValue("@FirstName", vFirstName)
            cmd.Parameters.AddWithValue("@MiddleName", vMiddleInitial)
            cmd.Parameters.AddWithValue("@Date1", vDate1)
            cmd.Parameters.AddWithValue("@Date2", vDate2)
            cmd.Parameters.AddWithValue("@Date3", vDate3)
            cmd.Parameters.AddWithValue("@Date4", vDate4)
            cmd.Parameters.AddWithValue("@Date5", vDate5)
            cmd.Parameters.AddWithValue("@Date6", vDate6)
            cmd.Parameters.AddWithValue("@Date7", vDate7)
            cmd.Parameters.AddWithValue("@Date8", vDate8)
            cmd.Parameters.AddWithValue("@Date9", vDate9)
            cmd.Parameters.AddWithValue("@Absent", vAbsent)
            cmd.Parameters.AddWithValue("@Present", vPresent)
            cmd.Parameters.AddWithValue("@EQ", vEQ)

        Next

        myconnection.Close()
        MessageBox.Show("Saved Successfully!", "Saved", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Catch ex As OleDb.OleDbException
        MsgBox(ex.Message, MsgBoxStyle.Critical, "oledb Error")
    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Critical, "General Error")
    End Try
End Sub

这是我们用来在数据库中保存选中/未选中复选框的代码。不幸的是,它没有成功!但是当我们将其用于程序的其他部分时,它起作用了!所以我们有点困惑为什么它在我们放置此代码的程序部分不起作用。有人可以帮助我们吗?非常感谢!

vb.net checkbox datagridview
1个回答
0
投票
   Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
    Try
        myconnection.Open()
        'Declaration of Variables
        Dim str As String

        Dim vCourseCode As String
        Dim vSection As String
        Dim vSurname As String
        Dim vFirstName As String
        Dim vMiddleInitial As String
        Dim vDate1 As Boolean
        Dim vDate2 As Boolean
        Dim vDate3 As Boolean
        Dim vDate4 As Boolean
        Dim vDate5 As Boolean
        Dim vDate6 As Boolean
        Dim vDate7 As Boolean
        Dim vDate8 As Boolean
        Dim vDate9 As Boolean
        Dim vAbsent As String
        Dim vPresent As String
        Dim vEQ As String


        For x As Integer = 0 To DataGridView1.Rows.Count - 2
            vCourseCode = DataGridView1.Rows(x).Cells(1).Value
            vSection = DataGridView1.Rows(x).Cells(2).Value
            vSurname = DataGridView1.Rows(x).Cells(3).Value
            vFirstName = DataGridView1.Rows(x).Cells(4).Value
            vMiddleInitial = DataGridView1.Rows(x).Cells(5).Value 
            vAbsent = DataGridView1.Rows(x).Cells(6).Value
            vPresent = DataGridView1.Rows(x).Cells(7).Value
            vEQ = DataGridView1.Rows(x).Cells(8).Value
            vDate1 = DataGridView1.Rows(x).Cells(0).Value
            vDate2 = DataGridView1.Rows(x).Cells(1).Value
            vDate3 = DataGridView1.Rows(x).Cells(2).Value
            vDate4 = DataGridView1.Rows(x).Cells(3).Value
            vDate5 = DataGridView1.Rows(x).Cells(4).Value
            vDate6 = DataGridView1.Rows(x).Cells(5).Value
            vDate7 = DataGridView1.Rows(x).Cells(6).Value
            vDate8 = DataGridView1.Rows(x).Cells(7).Value
            vDate9 = DataGridView1.Rows(x).Cells(8).Value

            str = "Insert into StudentsAttendance ([CourseCode],[Section],[Surname],[FirstName],[MiddleName],[Date1],[Date2],[Date3],[Date4],[Date5],[Date6],[Date7],[Date8],[Date9],[Absent],[Present],[EQ]) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"


            Dim cmd As OleDbCommand = New OleDbCommand(str, myconnection)
            cmd.Parameters.AddWithValue("@CourseCode", vCourseCode)
            cmd.Parameters.AddWithValue("@Section", vSection)
            cmd.Parameters.AddWithValue("@Surname", vSurname)
            cmd.Parameters.AddWithValue("@FirstName", vFirstName)
            cmd.Parameters.AddWithValue("@MiddleName", vMiddleInitial)
            cmd.Parameters.AddWithValue("@Date1", vDate1)
            cmd.Parameters.AddWithValue("@Date2", vDate2)
            cmd.Parameters.AddWithValue("@Date3", vDate3)
            cmd.Parameters.AddWithValue("@Date4", vDate4)
            cmd.Parameters.AddWithValue("@Date5", vDate5)
            cmd.Parameters.AddWithValue("@Date6", vDate6)
            cmd.Parameters.AddWithValue("@Date7", vDate7)
            cmd.Parameters.AddWithValue("@Date8", vDate8)
            cmd.Parameters.AddWithValue("@Date9", vDate9)
            cmd.Parameters.AddWithValue("@Absent", vAbsent)
            cmd.Parameters.AddWithValue("@Present", vPresent)
            cmd.Parameters.AddWithValue("@EQ", vEQ)
            '==========PUT A cmd EXECUTION here so all your data will insert==========
            cmd.ExecuteNonQuery()
            '=========================================================================
        Next

        myconnection.Close()
        MessageBox.Show("Saved Successfully!", "Saved", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Catch ex As OleDb.OleDbException
        MsgBox(ex.Message, MsgBoxStyle.Critical, "oledb Error")
    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Critical, "General Error")
    End Try
    End Sub

试试这个,我认为缺少执行...

© www.soinside.com 2019 - 2024. All rights reserved.