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

时间:2014-05-26 05:53:43

标签: vb.net checkbox datagridview

   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

这是我们用来保存数据库中已选中/未选中复选框的代码。不幸的是,它没有用!但是当我们将它用于程序的其他部分时,它的工作原理!所以有点混淆为什么它不能用于我们放置此代码的程序部分。有谁可以帮助我们?非常感谢你!

1 个答案:

答案 0 :(得分:0)

Private Sub btnSave_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)处理btnSave.Click     尝试         myconnection.Open()         '变量宣言         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

尝试这个我认为执行中缺少...