当前位置:  开发笔记 > 编程语言 > 正文

Datareader在VS中没有返回结果,但Stored Procedure在Sql Server中返回多个结果集

如何解决《Datareader在VS中没有返回结果,但StoredProcedure在SqlServer中返回多个结果集》经验,为你挑选了2个好方法。

我无法从visual studio 2008中的datareader中检索结果.我在同一个数据库中有几个存储过程.我可以从那些不接收输入参数的值中检索值.但是,当我在带有输入参数的存储过程中使用executreReader()方法时,我得到一个空的datareader.在检查结果集合时,出现消息"IEnumerable返回无结果".我感到困惑,因为我可以在sql server中执行存储过程并返回结果集.我以前能够从Visual Studio中的这些存储过程中检索行,但显然它有一天停止工作.

我已经尝试使用dataadapter用我的结果填充数据集,并使用executereader()方法获取sqldatareader但仍然没有得到任何结果.也没有抛出异常.我的参数都被正确命名,但我应该能够在没有参数的情况下调用这些存储过程并返回未过滤的结果集.我目前使用的代码如下:

string connStr = ConfigurationManager.ConnectionStrings["MyConnectionString"]
                                     .ConnectionString;

SqlConnection connCactus = new SqlConnection(connStr);
SqlCommand cmdPopulateFilterDropDowns = new SqlCommand( "dbo.MyStoredProc",
                                                        connCactus);
SqlDataReader rdrFilterSearch = null;
cmdPopulateFilterDropDowns.CommandType = CommandType.StoredProcedure;

connCactus.Open();
rdrFilterSearch = cmdPopulateFilterDropDowns
                      .ExecuteReader(CommandBehavior.CloseConnection);

return (rdrFilterSearch);

请帮忙!



1> BFree..:

您是否曾将参数添加到SqlCommand的Parameter集合中?你提到那些不起作用的是那些采用输入参数的,但在你的代码中你没有这样的东西:

cmdPopulateFilterDropDowns.Parameters.AddWithValue(...);



2> 小智..:

我这个愚蠢的错误.几个小时后,我意识到我正在使用的存储过程返回多个结果集,其中第一个结果集始终为空.因此缺乏结果.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有