Я работаю над созданием формы входа для приложения, над которым я работаю.У меня есть приложение, настроенное для правильного подключения к базе данных и выполнения хранимых процедур и запросов к базе данных.
Однако я не уверен, как отправлять сообщения из базы данных в мое приложение 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.