asp.net 调用sql2005存储过程

来源:百度知道 编辑:UC知道 时间:2024/06/24 08:09:19
存储过程:
use stuDB
go
create procedure proc_login
@name nvarchar(20),
@password nvarchar(20),
@message nvarchar(50) output
as
begin
if exists (select * from stuInfo where stuName = @name)
begin
select * from stuInfo where stuName = @name and stuPass = @password
if @@rowcount>0
begin
set @message = '登录成功!'
end
else
begin
set @message = '密码错误!'
end
end
else
begin
set @message = '用户名不存在!'
end
end
go

数据库表stuInfo中 有 stuName='admin' and stuPass='admin' 一条记录
可当在数据库查询分析器中执行
drop procedure proc_login
declare @message nvarchar(50)
exec proc_login 'admin','s',@message output
print @message
却没有输出 密码错误 !
当执行
drop procedure proc_login
declare @message nvarchar(50)
exec proc_logi

CREATE PROCEDURE proc_login
@name nvarchar(20),
@password nvarchar(20),
@message nvarchar(50) output
AS
BEGIN

DECLARE @PWD nvarchar(20)
SET @PWD = ''

select @PWD=stuPass from [stuInfo] where stuName = @name

IF @PWD=''
BEGIN
set @message = '用户名不存在!'
END
ELSE
BEGIN
IF @PWD=@password
set @message = '登录成功!'
ELSE
set @message = '密码错误!'
END
END
GO

declare @message nvarchar(50)
exec proc_login 'admin','s',@message output
print @message
密码错误!

exec proc_login 'admins','s',@message output
print @message
用户名不存在!

exec proc_login 'admins','admin',@message output
print @message
用户名不存在!

我看你这个过程没什么问题.我奇怪,你为什么要drop procedure proc_login?
我怀疑是你调用的代码有问题