CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

怎样执行存储过程,返回一个记录集和一个返回值?

楼主zyaln(人与人的差距咋就这么大呢!)2004-12-17 08:59:36 在 .NET技术 / C# 提问

比如  
  CREATE   PROCEDURE     aaaa  
  (  
  @ret   int   OUTPUT  
  )  
    AS  
  select   *   from   table1  
  set   @ret=0  
   
   
  GO  
  怎么同时取到select的结果和@ret的返回值呢  
  高手支招! 问题点数:50、回复次数:10Top

1 楼sdenli(Fender)回复于 2004-12-17 09:07:13 得分 0

Int   aa=sqlcomm.excutenoquy()  
  aa就是你的@RET了Top

2 楼wangyingbobj2911(不帅)回复于 2004-12-17 09:19:41 得分 0

CREATE   PROCEDURE     aaaa  
  (  
  @ret   int   OUTPUT  
  )  
    AS  
  select   *,@ret=0   from   table1  
   
  GO  
   
  把表多加一列  
  Top

3 楼flyskywlh(成功时享受成就,失意时享受生活..)回复于 2004-12-17 09:28:20 得分 0

declare   @ret   int  
  set   @ret=0  
  select   *,@ret   as   ret   from   t_oa_planTop

4 楼kuya(yaya工作室)回复于 2004-12-17 09:36:05 得分 10

CREATE   PROCEDURE     aaaa  
  (  
  @ret   int   OUTPUT  
  )  
    AS  
  select   *   from   table1  
  set   @ret=0  
  GO  
   
  declare   int   @yourret  
  exec   aaaa   @ret   =   @yourret   output  
  参数值@yourret   就是你要的@ret值,我exec返回值就是你的select   *   from   table1结果集Top

5 楼wangxt(海贝)回复于 2004-12-17 09:36:16 得分 0

帮你顶Top

6 楼saucer(思归)回复于 2004-12-17 09:36:36 得分 30

try   something   like   the   following,   note,   you   have   to   close   Reader   first  
   
  cmd   =   new   SqlCommand("aaaa",conn);  
  cmd.CommandType   =   CommandType.StoredProcedure;  
  cmd.Parameters.Add("@ret",   SqlDbType.Int);  
  cmd.Parameters["@ret"].Direction   =   ParameterDirection.Output;  
   
  SqlDataReader   reader   =   cmd.ExecuteReader();  
  while   (reader.Read())  
  {  
      //  
  }  
   
  reader.Close();  
   
  int   ret   =   (int)cmd.Parameters["@ret"].Value;Top

7 楼Ivony(授人以鱼不如授人以渔,上海谋生)回复于 2004-12-17 09:39:53 得分 3

也可以直接用RETURN   0。但是在执行的时候要采取一些措施,声明一个变量来捕获返回值。Top

8 楼51106354(大头)回复于 2004-12-17 11:21:52 得分 5

如果你已经有了存储过程,那么将很好写代码  
  cmd.CommandText   =   "EXECUTE   存储过程名称   @EmployeeID,@ZhiWu   OUTPUT";//@员工编号为要传入的参数.  
  cmd.Parameters.Add("@EmployeeID",   SqlDbType.Int).Value   =   User;  
  cmd.Parameters["@ZhiWu"].Direction   =   ParameterDirection.Output;  
  cmd.ExecuteNonQuery();  
  string   ID   =   (string)selectCmd.Parameters["@ZhiWu"].Value;  
  这样就可以得到职务  
  如果返回的是多行数据,则  
  SqlDataReader   reader   =   cmd.ExecuteReader();  
  ArrayList   al   =   new   ArrayList();  
  while   (reader.Read())  
  {  
      al.Add(reader.GetValue(0).ToString());//获取第一列中的值  
  }  
  reader.Close();  
   
  Top

9 楼kong19(DayDayUp)回复于 2004-12-17 13:01:55 得分 0

markTop

10 楼iamsoloist(Soloist)回复于 2004-12-17 13:35:47 得分 2

按    saucer(思归)     的没错。  
  如果你是使用sqlhelper的话,你仔细看一下你使用的方法的说明。Top

相关问题

  • 执行存储过程返回记录,如何分页?
  • 在存储过程中如何得到记录数的值?
  • 如何在存储过程中将记录值付给变量?
  • 新手,求一存储过程,实现判断表中某记录一字段值,如大于某值时执行删除,否则执行更新
  • 在VB(ADO)里执行SQL SERVER的存储过程,怎样得到存储过程的返回值?
  • 请问vc这样执行存储过程,那么,如何读取该存储过程的返回值呢?
  • JDBC怎么执行MSSQLServer的存储过程,得到存储过程返回值啊???????
  • 用 ExecuteReader() 来执行存储过程,可以得到存储过程的返回值吗?请高手回答...急....
  • 如何在存储过程里执行别另一个存储过程,并得到另一个存储过程返回的值?
  • 有关执行存储过程返回值的问题

关键词

  • 存储过程
  • ret
  • 返回
  • 值
  • asselect
  • zhiwu
  • aaaa
  • reader
  • cmd
  • output

得分解答快速导航

  • 帖主:zyaln
  • kuya
  • saucer
  • Ivony
  • 51106354
  • iamsoloist

相关链接

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

广告也精彩

反馈

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