Я использую ASP. NET MVC и C# для построения системы регистрации участников, и я вызываю хранимую процедуру для проверки информации об участнике в контроллере.
Если информация об элементе является повторением, хранимая процедура вернет сообщение об ошибке и отправит Viewbag во внешний интерфейс, чтобы подсказать, где повторение.
Теперь не только можно вставить информацию об элементе, но и проверять данные, но не может получить возвращаемое значение хранимой процедуры.
код SP
IF NOT EXISTS(SELECT * FROM [dbo].[tMember] WHERE mAccount = @mAccount AND mEmail = @mEmail AND mPhone=@mPhone)
BEGIN
INSERT INTO [dbo].[tMember] (mAccount , mPwd , mEmail , mPhone , mName ) VALUES (@mAccount , @mPwd , @mEmail , @mPhone , @mName)
--Messege : OK ==新增成功
SET @msg = 'OK'
END
IF EXISTS(SELECT * FROM [dbo].[tMember] WHERE mAccount = @mAccount)
BEGIN
--Messege : ErrorCode01 == 帳號重複
SET @msg = 'ErrorCode01'
END
IF EXISTS(SELECT * FROM [dbo].[tMember] WHERE mEmail = @mEmail)
BEGIN
--Messege : ErrorCode02 == 信箱重複
SET @msg = 'ErrorCode02'
END
IF EXISTS(SELECT * FROM [dbo].[tMember] WHERE mPhone = @mPhone)
BEGIN
--Messege : ErrorCode03 == 手機號碼重複
SET @msg = 'ErrorCode03'
END
SELECT @msg AS result END
код контроллера
public ActionResult Signup()
{
return View();
}
//使用post傳輸資料
[HttpPost]
public ActionResult Signup(string mAccount, string mPwd, string mEmail ,string mPhone, string mName)
{
//tMember member = new tMember();
//member.mAccount = mAccount;
//member.mPwd = mPwd;
//member.mEmail = mEmail;
//member.mName = mName;
////新增會員資料
//db.tMember.Add(member);
//db.SaveChanges();
db.sp_add_tMember(mAccount, mPwd, mEmail, mPhone, mName);
// I dont know how to get SP return value send to front end and judge
return View();
}