C# 获取存储过程 返回的参数Output

public  IList<Gname> GetReadFlei( int fid)
        {
            SqlParameter[] par = {  new SqlParameter( " @fid ",fid),
                                   new SqlParameter( " @RecordCount ",SqlDbType.NVarChar, 30)
                                 };
            par[ 1].Direction = ParameterDirection.Output;

            SqlDataReader DR = SQLHelp.ExecuteReader( " StroGetTest ", CommandType.StoredProcedure, par);
            IList<Gname> List =  new List<Gname>();
           
             while (DR.Read())
            {
                Gname sw =  new Gname();
                sw.id = DR.GetInt32( 0);
                sw.gname = DR.GetString( 1);
                sw.gdir = DR.GetString( 2);
                sw.gfla = DR.GetString( 3);
                List.Add(sw);
            }
            
            DR.Close();
             this.Label1.Text = par[ 1].Value.ToString();
            
             return List;
        }

 

public  static SqlDataReader ExecuteReader( string cmdText, CommandType cmdType,  params SqlParameter[] cmdParms) 

        {
            SqlCommand cmd = new SqlCommand();
            SqlConnection conn = new SqlConnection(Constr);

            try
            {
                ProCommand(cmd, conn, cmdText, cmdType,cmdParms);
                SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                //cmd.Parameters.Clear();//放到这里,返回参数会被清空。
                return rdr;
            }
            catch
            {
                conn.Close();
                throw;
            }
        }

注意:cmd.Parameters.Clear()不能用,否用返回参数会被清空

CREATE  PROCEDURE  StroGetTest
@fid  int ,
@RecordCount  NVarChar( 30) Output
AS

SELECT  @RecordCount = count( 1FROM gname  WHERE fid = @fid;
SELECT id,gname,gdir,gfla  FROM Gname  WHERE fid = @fid;
GO

 

 

转载于:https://www.cnblogs.com/chixiaojin/archive/2012/04/08/2437411.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值