怎样获取存储过程的执行结果?
我编写了这样一个存储过程:
--------用户登陆
create proc login
@inName varchar(20),
@inPsw varchar(20)
as
if exists (select * from sysuser where name=@inName and password=@inPsw)
return 0
else if exists (select * from sysuser where name=@inName)
return 1
else
return -1
go
在c#中我怎么才能获得它的返回值
问题点数:20、回复次数:5Top
1 楼lovvver(ElephantTalk.Bright)回复于 2006-03-13 11:09:24 得分 10
你的存储过程有问题:
应有一个output参数:
create proc login
@inName varchar(20),
@inPsw varchar(20)
@success int output
as
if exists (select * from sysuser where name=@inName and password=@inPsw)
return 0
else if exists (select * from sysuser where name=@inName)
return 1
else
return -1
go
执行完成后,取出output参数(第三个)的值,进行判断就可以知道有没有登陆成功了。Top
2 楼naturalth(自我批判,是思想、品德、素质、技能创新的优良工具)回复于 2006-03-13 11:15:57 得分 10
create proc login
@inName varchar(20),
@inPsw varchar(20),
@stat_return int output
as
if exists (select * from sysuser where name=@inName and password=@inPsw)
set @stat_return=0
else if exists (select * from sysuser where name=@inName)
set @stat_return=1
else
set @stat_return=-1
return
=========================
private void getUerInfor()
{
SqlCommand cmd ;
int lstrInfo ;
cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection=new SqlConnection("连接字符串");
cmd.CommandText = "login";
cmd.Add("@inName", SqlDbType.VarChar, 20).Value = "";
cmd.Add("@inPsw", SqlDbType.VarChar, 16).Value = "";
cmd.Add("@stat_return", SqlDbType.Int).Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery() ;
lstrInfo = (int)cmd.Parameters("@stat_return").Value;
cmd.Parameters.Clear();
if (lstrInfo ==1 )
{
MessageBox.Show("ok!");
}
}
Top
3 楼terry52(天天在线)回复于 2006-03-13 11:16:56 得分 0
添加一个输出参数Top
4 楼terry52(天天在线)回复于 2006-03-13 11:17:46 得分 0
晕。回复后发现竟然已经有两条回复了Top
5 楼angel_bear(angelbear)回复于 2006-03-13 11:45:12 得分 0
只能通过使用output参数来实现吗Top




