0

我有一个问题需要帮助。我有以下查询:

        SqlCommand randCode = new SqlCommand("(SELECT COUNT(student_ID) FROM COMPLETED)", conn);
        SqlDataReader randCodeR;
        connectie.Open();
        randCodeR = randCode.ExecuteReader();

        int count = randCodeR.GetOrdinal("student_ID");

COMPLETED 中有 500 名学生,randCodeR 有 1 个值为 500 的字段。现在,我希望将该值放入 count 变量中,但是当我尝试上面的代码时,它显示 randCodeR.GetOrdinal("student_ID") 中的 student_ID 已出的范围。为什么它在数据读取器中看不到 student_ID 以及如何从中获取值?谢谢。

微软 SQL 服务器 2012

4

2 回答 2

2

改变

int count = randCodeR.GetOrdinal("student_ID");

int count = (int)randCode.ExecuteScalar();

因此SqlCommand.ExecuteScalar,而不是SqldataReader.GetOrdinal返回结果集中列的索引。你根本不需要读者。

于 2013-10-30T10:42:12.153 回答
0

Because student_ID does not exists. Specifying an alias on the calculated column will remove the error.

string _sqlQuery = "SELECT COUNT(student_ID) student_ID FROM COMPLETED";
SqlCommand randCode = new SqlCommand(_sqlQuery, conn);
于 2013-10-30T10:41:39.167 回答