set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[sp_Accounts_ValidateLogin]
@username varchar(50),
@password varchar(50)
AS
DECLARE @myid INT
SELECT @myid = Id
FROM dbo.admin
WHERE username = @username and password = @Password
IF @myid != NULL
RETURN @myid
ELSE
RETURN -1
这一段简单存储过程查询数据库admin表里username和password为'123'的Id,表中是存在值的,昨天执行还好好的返回3,今天就一直是返回-1,求大神指点哪里的问题 再一个,我在C#程序中想要获取存储过程返回的结果集(dataset)而不是return value该怎么写呢?
5 个解决方案
#1
结果集的话
昨天执行还好好的返回3,今天就一直是返回-1
既然昨天可以正常的话,可以再检查一遍数据
ALTER PROCEDURE [dbo].[sp_Accounts_ValidateLogin]
@username varchar(50),
@password varchar(50)
AS
DECLARE @myid INT
SELECT @myid = Id
FROM dbo.admin
WHERE username = @username and password = @Password
SELECT ISNULL(@myid,-1) [myid]
昨天执行还好好的返回3,今天就一直是返回-1
既然昨天可以正常的话,可以再检查一遍数据
#2
1)细心检查调用的存储过程,确认该用户正确。
2)要在程序中返回dataset,只要使用多个select即可,如:
2)要在程序中返回dataset,只要使用多个select即可,如:
select * from A --返回表1,dataset.Tables[0]
select * from B --返回表2,dataset.Tables[1]
#3
@username varchar(50),
@password varchar(50)
AS
DECLARE @myid INT
SELECT @myid = Id
FROM dbo.admin
WHERE username = @username and password = @Password
rreturn @myid
现在情况是这样,如果没有哪个if。。else判断就是正常返回@myid,加了判断就直接null了。。。。
#4
IF @myid is not NULL
RETURN @myid
ELSE
RETURN -1
#5
问题搞定,改为is not null 就好了,楼上刚好也给出答案,结贴!
#1
结果集的话
昨天执行还好好的返回3,今天就一直是返回-1
既然昨天可以正常的话,可以再检查一遍数据
ALTER PROCEDURE [dbo].[sp_Accounts_ValidateLogin]
@username varchar(50),
@password varchar(50)
AS
DECLARE @myid INT
SELECT @myid = Id
FROM dbo.admin
WHERE username = @username and password = @Password
SELECT ISNULL(@myid,-1) [myid]
昨天执行还好好的返回3,今天就一直是返回-1
既然昨天可以正常的话,可以再检查一遍数据
#2
1)细心检查调用的存储过程,确认该用户正确。
2)要在程序中返回dataset,只要使用多个select即可,如:
2)要在程序中返回dataset,只要使用多个select即可,如:
select * from A --返回表1,dataset.Tables[0]
select * from B --返回表2,dataset.Tables[1]
#3
@username varchar(50),
@password varchar(50)
AS
DECLARE @myid INT
SELECT @myid = Id
FROM dbo.admin
WHERE username = @username and password = @Password
rreturn @myid
现在情况是这样,如果没有哪个if。。else判断就是正常返回@myid,加了判断就直接null了。。。。
#4
IF @myid is not NULL
RETURN @myid
ELSE
RETURN -1
#5
问题搞定,改为is not null 就好了,楼上刚好也给出答案,结贴!