Как получить возвращаемое значение из хранимой процедуры с VB в качестве вызывающего кода
Использование VB 2012 и SQL Server 2012. Написанная и протестированная хранимая процедура возвращает значение в зависимости от успеха процедуры. Хранимая процедура работает отлично, но мне трудно правильно написать код для получения возвращаемого значения, чтобы я мог его обработать.
То, что постоянно возвращается в мою переменную, - это -1. Это происходит независимо от того, установлен ли NOCOUNT в положение ON или OFF.
Что я уже пробовал:
Хранимая процедура SQL Server:
Используйте [BEClientData]
ГО
/ * * * * * * Объект: StoredProcedure [dbo].[sprocAuthorizeLogin] Дата сценария: 20.09.2016 9: 35: 48 ******/
УСТАНОВИТЕ ANSI_NULLS ON
ГО
УСТАНОВИТЕ QUOTED_IDENTIFIER НА
ГО
-- =============================================
-- Автор: Стэн Биббс
-- Дата создания: 18 сентября 2016 года
-- Описание: Проверьте отправку логина
-- =============================================
Изменить процедуру [dbo].[sprocAuthorizeLogin]
-- Добавьте параметры для хранимой процедуры здесь
@Username nvarchar(20) = 0,
@Password nvarchar(20) = 0
АС
НАЧАТЬ
-- Установить параметр nocount на добавленную предотвратить дополнительные результирующие наборы
-- вмешательство в операторы SELECT.
УСТАНОВИТЕ NOCOUNT ON;
-- Вставьте инструкции для процедуры здесь
Если существует(выберите имя пользователя, пароль
От ДБО.Подписываемый
Где Username = @Username и Password = @Password)
Возвращение 2
ЕЩЁ
Возврат 1
КОНЕЦ
Функция VB, вызывающая процедуру:
ValidateLogin государственной функции(strUsername бывал, как струна, strPassword бывал как строка) как целое число
Dim intExists как целое число
Дим CN, как новое sqlconnection(мой.Параметры.BEClientDataConnectionString)
Dim procName As String = " sprocAuthorizeLogin"
Dim cmd как новая SqlCommand(procName, cn)
С помощью cmd
.Свойство Commandtype = Значение Commandtype.Хранимая процедура
. CommandText = procName
.Parameters. Add ("@Username", SqlDbType.NVarChar, 20). Value = strUsername
.Parameters. Add ("@Password", SqlDbType.NVarChar, 20). Value = strPassword
Конец С
спицы.Открыть()
intExists = cmd.Метод executenonquery()
Вернуться intExists