C#使用ExecuteReader返回DataReader既有查询结果集又有输出参数和返回值的使用注意事项

今天,有个网友问起:

使用ExecuteReader方式执行的存储过程,存储过程既返回了查询结果,又有输出参数和返回值,但是返回值和输出结果总是取不到

其实这个问题,微软本身就给出了解释,MSDN上有明确的说明,我直接贴出来了:

Command 对象公开了几个可用于执行所需操作的 Execute 方法。当以数据流的形式返回结果时,使用 ExecuteReader 可返回 DataReader 对象。使用 ExecuteScalar 可返回单个值。使用 ExecuteNonQuery 可执行不返回行的命令。

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

上面说的,应该是很清楚了吧,呵呵

posted @ 2009-02-22 19:11  三角猫  阅读(1667)  评论(4编辑  收藏  举报