zoukankan      html  css  js  c++  java
  • 怎样执行存储过程,返回一个记录集和一个返回值

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

    楼主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(史丹力)回复于 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(~.NET 2% 一场雨~)回复于 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的话,你仔细看一下你使用的方法的说明。

  • 相关阅读:
    HTML
    JavaScript事件对象
    JavaScript 事件入门
    如何向github上传文件
    crystal
    BUUCTF[强网杯 2019]随便注wp
    BUUCTF[CISCN2019 华东南赛区]Web4 wp
    BUUCTF[NPUCTF2020]ezinclude wp
    Windows下Ant的环境配置
    Java解惑(1)——表达式之谜
  • 原文地址:https://www.cnblogs.com/QDuck/p/587856.html
Copyright © 2011-2022 走看看