none
SqlDataReader为什么无法在取得数据的同时返回存储过程output啊 RRS feed

  • 问题

  • 使用SqlDataReader无法得到存储过程output参数值,把SqlDataReader换成Dataset就可以获取了,请问是怎么回事啊。
                parameters[7].Direction = ParameterDirection.Output;

                DataSet dataset = SqlHelper.ExecuteDataSet(CommandType.StoredProcedure, SQL_SearchPageData, parameters);
                recordCount = Convert.ToInt32(parameters[7].Value);
    这样就可以
    吧dataset换成datareader就不行,SqlDataReader为什么无法在取得数据的同时返回存储过程output啊
    2009年8月29日 4:41

答案

  • http://www.knowsky.com/340290.html 

    当您将 Command 对象用于存储过程时,可以将 Command 对象的 CommandType 属性设置为 StoredProcedure。当 CommandType 为 StoredProcedure 时,可以使用 Command 的 Parameters 属性来访问输入及输出参数和返回值。无论调用哪一个 Execute 方法,都可以访问 Parameters 属性。但是,当调用 ExecuteReader 时,在 DataReader 关闭之前,将无法访问返回值和输出参数

    知识改变命运,奋斗成就人生!
    2009年8月29日 5:08
    版主
  • 你好,请参考MSDN,http://msdn.microsoft.com/zh-cn/library/tyy0sz6b.aspx

    您可以使用某一命令的 Parameters 属性访问输入和输出参数,并返回值(无论调用哪种 Execute 方法)。 当使用 ExecuteReader 时,在关闭 DataReader 后才能访问返回值和输出参数。
    jon.valett@gmail.com
    2009年8月30日 3:54
    版主

全部回复

  • http://www.knowsky.com/340290.html 

    当您将 Command 对象用于存储过程时,可以将 Command 对象的 CommandType 属性设置为 StoredProcedure。当 CommandType 为 StoredProcedure 时,可以使用 Command 的 Parameters 属性来访问输入及输出参数和返回值。无论调用哪一个 Execute 方法,都可以访问 Parameters 属性。但是,当调用 ExecuteReader 时,在 DataReader 关闭之前,将无法访问返回值和输出参数

    知识改变命运,奋斗成就人生!
    2009年8月29日 5:08
    版主
  • 你好,请参考MSDN,http://msdn.microsoft.com/zh-cn/library/tyy0sz6b.aspx

    您可以使用某一命令的 Parameters 属性访问输入和输出参数,并返回值(无论调用哪种 Execute 方法)。 当使用 ExecuteReader 时,在关闭 DataReader 后才能访问返回值和输出参数。
    jon.valett@gmail.com
    2009年8月30日 3:54
    版主