我很新的c#编程,我已经继承了这个脚本,我正在努力。SqlDataReader.NextResult()处理0结果
我正在调用3个结果集的过程。第一个结果集将始终返回1条记录。第二个结果集可能会返回1或0个记录。第三个结果集可能会返回1或0个记录。
SqlCommand cmd = new SqlCommand("MyProc", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@param1", param1));
cmd.Parameters.Add(new SqlParameter("@param2", param2));
pageData = cmd.ExecuteReader();
while (pageData.Read()){
// Do some stuff here
}
Response.Write("HERE");
pageData.NextResult();
while (pageData.Read()){
// Do some stuff here
}
Response.Write("HERE2");
pageData.NextResult();
while (pageData.Read()){
Response.Write("HERE3");
}
在我的测试情况下,第一记录集返回1分的结果,第二个0和第三1.在这种情况下,它输出第一“这里”,但跳过第二和第三。
我需要跳过第二组是否有0结果它并转到第三
NextResult重新运行一个布尔值。你的电话回复真实吗?如果第二个这里从来没有显示异常正在抛出,你正在默默地扔掉它。你也需要使用'using'语句来处理你的读者。 –