数据读取器是只能向前移动的,因此在第一次填充时它们没有计数。您可以采取以下几种方法来解决这个问题: 运行单独的命令来获取计数或使用NextResult代替完全单独的命令。 循环遍历结果并计算记录数。 使用DataSet。 这是第一种方法的示例:没有NextResult: http://www.devx.com/vb2themax/Tip/18807 使用NextResult(不返回记录计数,但让您了解如何使用NextResult): http://bytes.com/topic/asp-net/answers/295793-datareader-nextresults-question 这是第二种方法的示例: http://support.microsoft.com/kb/308050