我正在为我正在处理的应用程序创建一个登录表单。我将我的应用程序设置为正确连接到数据库并在数据库上运行存储过程和查询。
但是我不确定如何将消息从数据库发送到我的 VB.Net 应用程序。现在我基本上有两种方法可以为我的数据库执行代码:
Public Function ExecuteCMD(ByRef CMD As SqlCommand) As DataTable
Dim DS As New DataSet()
Try
OpenDBConnection()
CMD.Connection = DB_CONNECTION
If CMD.CommandText.Contains(" ") Then
CMD.CommandType = CommandType.Text
Else
CMD.CommandType = CommandType.StoredProcedure
End If
Dim adapter As New SqlDataAdapter(CMD)
adapter.SelectCommand.CommandTimeout = 300
adapter.Fill(DS)
Catch ex As Exception
Throw New Exception("Database Error: " & ex.Message)
Finally
CloseDBConnection()
End Try
Return DS.Tables(0)
End Function
Public Function ExecuteCMDWithReturnValue(ByRef CMD As SqlCommand) As Boolean
Try
OpenDBConnection()
CMD.Connection = DB_CONNECTION
CMD.Parameters.Add("@ret", SqlDbType.Int).Direction = ParameterDirection.ReturnValue
CMD.CommandType = CommandType.StoredProcedure
CMD.ExecuteNonQuery()
Dim result As Object = CMD.Parameters("@ret").Value
Return If(Convert.ToInt32(result) = 1, False, True)
Catch ex As Exception
Throw New Exception("Database Error: " & ex.Message)
Return False
Finally
CloseDBConnection()
End Try
End Function
这些功能确实可以正常工作,但它们对于错误处理来说是可怕的。
例如,我希望能够设置我的存储过程以登录到应用程序以返回“找不到用户名”或“密码不正确”消息,以便我可以向我的用户准确显示问题所在,如与仅在登录是否通过时仅返回真或假相反仅返回通用的“登录信息不正确”消息。
不幸的是,我不知道如何在任何一端做到这一点。我不知道在 SQL Server 端设置什么让它在过程中吐出消息,而且我不知道在 VB.Net 中接收这些消息很热。