CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

怎样获取存储过程的执行结果?

楼主angel_bear(angelbear)2006-03-13 10:56:29 在 .NET技术 / C# 提问

我编写了这样一个存储过程:  
  --------用户登陆  
  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

相关问题

  • 执行存储过程,获取out返回值问题
  • 如何获取调用SQL存储过程后的结果值?
  • 请问java如何调用oracle 中的存储过程?并获取存储过程的输出结果?
  • 请问java如何调用oracle 中的存储过程?并获取存储过程的输出结果?
  • 得到存储过程执行结果的最好办法?
  • 存储过程执行结果的分发和订阅问题
  • 如何得知存储过程的执行结果
  • 这个存储过程好像@NO获取值的时候有问题,还有我怎么在查询分析器里面执行并显示结果?
  • 高手帮忙,===存储过程执行结果和SQL执行结果不一致.===
  • 高手帮忙,===存储过程执行结果和SQL执行结果不一致.===

关键词

  • 存储过程
  • inname
  • inpsw
  • lstrinfo
  • cmd
  • 参数
  • stat
  • varchar
  • exists
  • sqldbtype

得分解答快速导航

  • 帖主:angel_bear
  • lovvver
  • naturalth

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo