RezaNrzdh
دوشنبه 23 تیر 1393, 03:46 صبح
سلام.
من یه SP توی اینترنت دیدم برای عضویت.
اومدم پیاده سازیش کنم. اما به یه مشکل عجیب خوردم.
داستان SP اینجوریه که username و password و email رو میگیره ، اول چک میکنه ببینه usernameی قبلا وجود داشته ؟ اگه آره -1 رو برمیگردونه
بعد چک میکنه email قبلا وجود داشته یا نه اگه آره -2 رو برمیگردونه.
حالا اگه هیچکدوم از این دوتا وجود نداشتن ، اطلاعات رو وارد دیتابیس میکنه بعدشم 3 رو برمیگردونه.
حالا جالبیه کار اینجاست ، چرا در قسمت آخر بعد از insert ، عدد 3 بر گشت داده نمیشه؟؟؟ اگه insert رو برداریم... select آخری خوب کار میکنه...اما وقتی insert باشه انگار عملا کار نمیکنه و به جای عدد 3 دوباره -1 برگشت میخوره به برنامه
واقعا عجیبه!!
نظر شما چیه؟؟؟؟
CREATE PROCEDURE [dbo].[Insert_User]
@Username NVARCHAR(20),
@Password NVARCHAR(20),
@Email NVARCHAR(30)
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS(SELECT UserId FROM Users WHERE Username = @Username)
BEGIN
SELECT -1 -- Username exists.
END
ELSE IF EXISTS(SELECT UserId FROM Users WHERE Email = @Email)
BEGIN
SELECT -2 -- Email exists.
END
ELSE
BEGIN
INSERT INTO [Users]
([Username]
,[Password]
,[Email]
,[CreatedDate])
VALUES
(@Username
,@Password
,@Email
,GETDATE())
SELECT 3
END
END
من یه SP توی اینترنت دیدم برای عضویت.
اومدم پیاده سازیش کنم. اما به یه مشکل عجیب خوردم.
داستان SP اینجوریه که username و password و email رو میگیره ، اول چک میکنه ببینه usernameی قبلا وجود داشته ؟ اگه آره -1 رو برمیگردونه
بعد چک میکنه email قبلا وجود داشته یا نه اگه آره -2 رو برمیگردونه.
حالا اگه هیچکدوم از این دوتا وجود نداشتن ، اطلاعات رو وارد دیتابیس میکنه بعدشم 3 رو برمیگردونه.
حالا جالبیه کار اینجاست ، چرا در قسمت آخر بعد از insert ، عدد 3 بر گشت داده نمیشه؟؟؟ اگه insert رو برداریم... select آخری خوب کار میکنه...اما وقتی insert باشه انگار عملا کار نمیکنه و به جای عدد 3 دوباره -1 برگشت میخوره به برنامه
واقعا عجیبه!!
نظر شما چیه؟؟؟؟
CREATE PROCEDURE [dbo].[Insert_User]
@Username NVARCHAR(20),
@Password NVARCHAR(20),
@Email NVARCHAR(30)
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS(SELECT UserId FROM Users WHERE Username = @Username)
BEGIN
SELECT -1 -- Username exists.
END
ELSE IF EXISTS(SELECT UserId FROM Users WHERE Email = @Email)
BEGIN
SELECT -2 -- Email exists.
END
ELSE
BEGIN
INSERT INTO [Users]
([Username]
,[Password]
,[Email]
,[CreatedDate])
VALUES
(@Username
,@Password
,GETDATE())
SELECT 3
END
END