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该怎么写呢?------解决思路----------------------
结果集的话
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
既然昨天可以正常的话,可以再检查一遍数据
------解决思路----------------------
1)细心检查调用的存储过程,确认该用户正确。
2)要在程序中返回dataset,只要使用多个select即可,如:
select * from A --返回表1,dataset.Tables[0]
select * from B --返回表2,dataset.Tables[1]
------解决思路----------------------
IF @myid is not NULL
RETURN @myid
ELSE
RETURN -1