考虑下面的代码:的ExecuteReader返回结果,当检查查询确实
StringBuilder textResults = new StringBuilder();
using(SqlConnection connection = new SqlConnection(GetEntityConnectionString()))
{
connection.Open();
m.Connection = connection;
SqlDataReader results = m.ExecuteReader();
while (results.Read())
{
textResults.Append(String.Format("{0}", results[0]));
}
}
我用活动监视SQL Server管理Studio中的数据库来检查正被发送的精确查询。然后,我将该查询文本复制到SSMS中的查询编辑器窗口,查询返回了预期的结果。但是,SqlDataReader results
始终为空,表示“该枚举未返回结果”。
我怀疑是不知何故结果没有被正确地返回,这让我觉得上面的代码有问题,而不是查询本身传递。
有没有什么会导致在上面的代码?或者我忽略了什么?
编辑:
这里是通过SqlCommand对象指示的查询:
SELECT DISTINCT StandardId,Number
FROM vStandardsAndRequirements
WHERE StandardId IN ('@param1','@param2','@param3')
ORDER BY StandardId
下面是查询,它出现在活动监视器:
SELECT DISTINCT StandardId,Number
FROM vStandardsAndRequirements
WHERE StandardId IN ('ABC-001-0','ABC-001-0.1','ABC-001-0')
ORDER BY StandardId
查询正在反对一个观点。
当我对数据库运行第二个查询时,它返回了3行。
SqlDataReader指示0行。
也许你应该向我们展示查询和表格的样子,很难说没有查询/ DDL的失败。上面的代码是可以的。 – Matten 2011-02-09 01:07:35
谢谢,会做。 – morganpdx 2011-02-09 01:08:34