CREATE PROCEDURE SP_InsertUsers @Email NVARCHAR(30) , @Password NVARCHAR(20), @Nickname NVARCHAR(20) AS BEGIN SET NOCOUNT ON; IF EXISTS(SELECT UsersTable.Email, UsersTable.Login FROM UsersTable WHERE UsersTable.Email = @Email or UsersTable.Login = @Nickname) --check email BEGIN SELECT -1 AS FALSE END ELSE BEGIN INSERT INTO UsersTable(Email, Pass, Login, Data_reg) VALUES (@Email, @Password, @Nickname, GETDATE()) SELECT 1 AS TRUE END END The procedure itself works without problems and does not allow creating a new user if the login or password already exists in the database.
But the problem is that it is impossible to apply it correctly from the program, I’m doing everything right.
var regInfo = this.mydb.SP_InsertUsers(model.Email, model.Password, model.Login).ToList(); if (regInfo != null && regInfo.Count() != -1) { mydb.SaveChanges(); TempData["message"] = string.Format("Новая учетная запись \"{0}\" успешно создана!", model.Login.ToLower()); return RedirectToAction("Login", "Account"); } else { TempData["message_error"] = string.Format("Такой логин или e-mail уже кем-то используется"); } How to properly perform the verification condition? Now when I enter any values, regInfo.Count () takes a value of 1, and therefore, even if you enter incorrect values, the else does not enter at all