微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 .net 从 MS Access 数据库中删除不存在的记录

如何解决使用 .net 从 MS Access 数据库中删除不存在的记录

以下函数从我的 MS Access 数据库删除该行。一切正常,只是如果我输入一个不存在的“txtRiskid.Text”,它会运行 else 语句。我怎么能在这个 if 语句中捕捉到这个,所以如果我输入一个不存在的“txtRiskid.Text”,它会通过消息告诉我它不存在,类似于我写的如果它被留下空。

删除按钮编码:

Private Sub Deletebtn_Click_1(sender As Object,e As EventArgs) Handles Deletebtn.Click
    If txtRiskid.Text = "" Then
        MsgBox("Please enter a existing 'Risk ID' to delete the specific record from the database","Warning")
    Else
        Dim Deletequery As String = "delete from Risk_Register where ID=@ID"
        Runquery(Deletequery)
        MsgBox("The record has been Deleted successfully from the database.","information")
    End If
End Sub

运行查询编码:

Public Sub Runquery(ByVal query As String)

    con = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\ahmed\OneDrive\Desktop\ProjectDatabase2003.mdb")
    Dim cmd As New OleDbCommand(query,con)

    cmd.Parameters.AddWithValue("@ID",txtRiskid.Text)
    cmd.Parameters.AddWithValue("@Risk_Name",txtRiskname.Text)
    cmd.Parameters.AddWithValue("@Risk_Description",txtRiskdescription.Text)
    cmd.Parameters.AddWithValue("@Owner",txtOwner.Text)
    cmd.Parameters.AddWithValue("@Control",txtControl.Text)
    cmd.Parameters.AddWithValue("@Probability",txtProbability.Text)
    cmd.Parameters.AddWithValue("@Impact",txtImpact.Text)
    cmd.Parameters.AddWithValue("@Risk_Level",txtRisklevel.Text)

    con.open()
    cmd.ExecuteNonQuery()
    con.Close()

End Sub

解决方法

ExecuteNonQuery() 返回受影响的行数见 https://docs.microsoft.com/en-us/dotnet/api/system.data.oledb.oledbcommand.executenonquery 从您的 Runquery 子程序返回它并检查 Deletebtn_Click_1 处理程序。

那种

Private Sub Deletebtn_Click_1(sender As Object,e As EventArgs) Handles Deletebtn.Click
    If txtRiskid.Text = "" Then
        MsgBox("Please enter a existing 'Risk ID' to delete the specific record from the database","Warning")
    Else
        Dim Deletequery As String = "delete from Risk_Register where ID=@ID"
        If Runquery(Deletequery) > 0 Then
            MsgBox("The record has been Deleted successfully from the database.","Information")
        Else
            MsgBox("The record doesn't exist in the database.","Information")
        End If
    End If
End Sub

Public Function Runquery(ByVal query As String) As Integer

    con = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\ahmed\OneDrive\Desktop\ProjectDatabase2003.mdb")
    Dim cmd As New OleDbCommand(query,con)
    Dim count As Integer
    cmd.Parameters.AddWithValue("@ID",txtRiskid.Text)
    cmd.Parameters.AddWithValue("@Risk_Name",txtRiskname.Text)
    cmd.Parameters.AddWithValue("@Risk_Description",txtRiskdescription.Text)
    cmd.Parameters.AddWithValue("@Owner",txtOwner.Text)
    cmd.Parameters.AddWithValue("@Control",txtControl.Text)
    cmd.Parameters.AddWithValue("@Probability",txtProbability.Text)
    cmd.Parameters.AddWithValue("@Impact",txtImpact.Text)
    cmd.Parameters.AddWithValue("@Risk_Level",txtRisklevel.Text)

    con.Open()
    count = cmd.ExecuteNonQuery()
    con.Close()
    Return count
End Function

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。