我在 Visual Studio 2008 中从数据读取器检索结果时遇到问题。我在同一个数据库中有多个存储过程。我能够从那些不接收输入参数的值中检索值。但是,当我在带有输入参数的存储过程上使用 executreReader() 方法时,我得到一个空的数据读取器。检查结果集合后,会出现消息“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);
请帮忙!
您是否曾经将参数添加到 SqlCommand 的参数集合中?您提到那些不起作用的是那些接受输入参数的,但在您的代码中您没有这样的东西:
cmdPopulateFilterDropDowns.Parameters.AddWithValue(...);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)