如何在不使用按钮的情况下将数据从datagridview保存到sql数据库

时间:2020-02-15 19:24:09

标签: vb.net

我需要自动保存数据,而不需要从datagridview到sql数据库的任何按钮,在sql数据库中,从另一个表中检索准入编号和名称并将分数插入到另一个表中。

For Each row As DataGridViewRow In DataGridView1.Rows

        If cmbexam.Text = "CAT 1" And cmbpaper.Text = "Paper 1" Then

            sqlSTR = "SELECT AdmNo, Name, Class, Stream, Term, Exam, Subject, Paper, Limit, Score  FROM CT11 WHERE (AdmNo = '" & row.Cells(0).Value & "') AND (Name = '" & row.Cells(1).Value & "')"
            ExecuteSQLQuery(sqlSTR)

            If sqlDT.Rows.Count > 0 Then

                sqlSTR = "UPDATE CT11 SET AdmNo ='" & row.Cells(0).Value & "', Name ='" & row.Cells(1).Value & "', Class ='" & cmbform.Text & "', Stream ='" & cmbstream.Text & "', Term ='" & cmbterm.Text & "', Exam ='" & cmbexam.Text & "', Subject ='" & cmbsubject.Text & "', Limit ='" & txtlimit.Text & "', Score ='" & row.Cells(2).Value & "'  WHERE (AdmNo = '" & row.Cells(0).Value & "') AND (Name = '" & row.Cells(1).Value & "') AND (Class ='" & cmbform.Text & "') AND (Stream = '" & cmbstream.Text & "') AND (Term = '" & cmbterm.Text & "') AND (Exam = '" & cmbexam.Text & "') AND (Subject = '" & cmbsubject.Text & "')"
                ExecuteSQLQuery(sqlSTR)
            Else

                sqlSTR = "INSERT INTO CT11(AdmNo, Name, Class, Stream, Term, Exam, Subject, SP, Paper, Limit,Score) VALUES ('" & row.Cells(0).Value & "', '" & row.Cells(1).Value & "', '" & cmbform.Text & "', '" & cmbstream.Text & "', '" & cmbterm.Text & "', '" & cmbexam.Text & "', '" & cmbsubject.Text & "', '" & CheckBox2.CheckState & "', 'Paper 1', '" & txtlimit.Text & "','" & row.Cells(2).Value & "')"
                ExecuteSQLQuery(sqlSTR)
            End If

        End If

    Next

1 个答案:

答案 0 :(得分:0)

所有有关事件的信息:

面向事件编程的概念也非常适合图形用户界面的实现,在该界面中,事件主要是用户操作,例如按下键或单击按钮。应用程序的另一个重要领域是计算机仿真,计算机仿真的设置方式是仅由事件触发状态变化,然后触发事件(请参见面向事件的仿真)。

引用Wikipedia

我认为,如果您想在每次更改值时立即更新数据库,可以尝试使用FocusLost-Event。大多数开发人员都使用CellValueChanged-Event来处理数据传输。