问题描述
以下函数从我的 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