当前位置: 代码迷 >> Sql Server >> 请问一个入门级的存储过程有关问题
  详细解决方案

请问一个入门级的存储过程有关问题

热度:48   发布时间:2016-04-24 09:34:30.0
请教一个入门级的存储过程问题
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]

------解决思路----------------------
引用:
@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了。。。。 


 
IF @myid  is not  NULL   
RETURN  @myid
ELSE
RETURN -1 
  相关解决方案