VBNET中应使用什么错误处理

时间:2018-09-03 07:30:20

标签: sql-server vb.net error-handling save

这是我保存BTN的密码

 Private Sub SaveBtn2_Click(ByVal sender As System.Object, ByVal e As 
 System.EventArgs) Handles SaveBtn2.Click
    Dim dt As New DataTable
    Dim adapter As New SqlDataAdapter


    Dim con As String = "Data Source = HCA-ISD03\SQLEXPRESS; Initial Catalog = QMS_HCA; User ID=qs; Password=ZAQ!2wsx; MultipleActiveResultSets=True"
    Dim conn As New SqlConnection(con)

    conn.Open()

    cmd.Connection = conn
    cmd.CommandText = "spSaveAddNewAlerts"
    cmd.CommandType = CommandType.StoredProcedure


    cmd.Parameters.AddWithValue("@MESSAGE", Message.Text)

    cmd.Parameters.AddWithValue("@DCREATED", DateTimePicker1.Value)

    cmd.Parameters.AddWithValue("@CREATEDBY", Createdby.Text)

    cmd.ExecuteNonQuery()





    If Message.Text = "" Then

        MessageBox.Show("Message cannot be empty, fill in before proceeding", _
                        "User Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Message.Focus()


    Else
        MessageBox.Show("Application Restarting..", _
                        "User Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Message.Focus()
        Application.Restart()

        conn.Close()

    End If

    MsgBox("Saved, Updating Database..")
    Application.Restart()


End Sub

如何中断要保存在数据库中的数据。即使出现消息错误并且我已经关闭了连接。数据仍然存储在数据库中。请帮忙。谢谢!

1 个答案:

答案 0 :(得分:0)

为什么不将验证放在存储过程调用之前,如果遇到验证错误,就直接退出点击处理程序?

Private Sub SaveBtn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveBtn2.Click

    'Check this first, before running the stored procedure!
    If Message.Text = "" Then

        MessageBox.Show("Message cannot be empty, fill in before proceeding",
                    "User Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Message.Focus()
        Return 'Exit the method!
    End If

    Dim dt As New DataTable
    Dim adapter As New SqlDataAdapter

    Dim con As String = "Data Source = HCA-ISD03\SQLEXPRESS; Initial Catalog = QMS_HCA; User ID=qs; Password=ZAQ!2wsx; MultipleActiveResultSets=True"
    Dim conn As New SqlConnection(con)

    conn.Open()

    cmd.Connection = conn
    cmd.CommandText = "spSaveAddNewAlerts"
    cmd.CommandType = CommandType.StoredProcedure

    cmd.Parameters.AddWithValue("@MESSAGE", Message.Text)

    cmd.Parameters.AddWithValue("@DCREATED", DateTimePicker1.Value)

    cmd.Parameters.AddWithValue("@CREATEDBY", Createdby.Text)

    cmd.ExecuteNonQuery()

    conn.Close()

    MsgBox("Saved, Updating Database..")
    Application.Restart()
End Sub