Как получить возвращаемое значение из хранимой процедуры?
Здравствуйте дорогие,
Я создаю хранимую процедуру следующим образом,
В этой процедуре хранения я хочу вставить регистрационные данные пользователя в tblUserInfo.
если идентификатор электронной почты не существует в базе данных, то я хочу вернуть 1 из хранимой процедуры и сохранить данные в базе данных, которые я передал в хранимую процедуру.
если электронная почта уже существует в базе данных.. Я хочу вернуть 2 из хранимой процедуры, а данные не хочу сохранять.
Я попытался следовать хранимой процедуре, но она дала неожиданный результат. Как я могу это сделать?
ALTER PROCEDURE [dbo].[userRegistration] @userId VARCHAR(12), @emailadr VARCHAR(50), @password VARCHAR(12) AS BEGIN DECLARE @userAutoId VARCHAR(64)=NEWID(); DECLARE @firstName VARCHAR(15)=''; DECLARE @lastName VARCHAR(15)=''; DECLARE @gender BIT=1; DECLARE @isDeleted BIT= 0; DECLARE @Status INTEGER; IF NOT EXISTS(SELECT * FROM tblUserInfo WHERE email=@emailadr) BEGIN INSERT INTO tblUserInfo VALUES( @userAutoId, @firstName, @lastName, @emailadr, @userid, @password, @gender, @isDeleted ) SET @Status=1 END ELSE BEGIN SET @Status=2 END SELECT @Status END
а мой код на c# таков
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString); con.Open(); SqlCommand cmd = new SqlCommand("userRegistration ", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@userId", SqlDbType.VarChar).Value = userId; cmd.Parameters.Add("@emailadr", SqlDbType.VarChar).Value = emailadr; cmd.Parameters.Add("@password", SqlDbType.VarChar).Value = password; SqlDataReader rdrStatus = cmd.ExecuteReader(); if (rdrStatus[0].ToString() == "1") { string result = "1"; json = new JavaScriptSerializer().Serialize(result); } else if (rdrStatus[0].ToString() == "1") { string result = "2"; json = new JavaScriptSerializer().Serialize(result); } con.Close(); return json; }
Что я уже пробовал:
Я пытаюсь зарегистрировать нового пользователя. не удается использовать уже использованный идентификатор электронной почты
Laxmidhar tatwa technologies
Как одно значение использовать запрос, как
ВАР СЦ = ЦМД.executescalar так();