从sql express中的给定表中查找最大值

时间:2012-05-28 08:22:28

标签: c# sql sql-server

我正在尝试从数据库表中检索最新数据。 我使用max(columnName)但没有结果我喜欢。 我不断获取列名而不是任何值

请帮助我...

检索最大值的代码就像这样

            dbConnection dbCon = new dbConnection();
            con = dbCon.doConnection();

            SqlCommand cmd = new SqlCommand();


            String query = "select max(studentNo) from studentInfo;";
            cmd.Connection = con;
            cmd.CommandText = query;
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            { 
                String x=reader["studentNo"].ToString();

            }

这里studentNo是我需要提取的值的列名,它是int类型 在我的应用程序上打印字符串x时,我得到studentNo而不是值。 现在我缺乏解决问题的线索,因为我发现代码没有任何问题。 帮帮我这个

4 个答案:

答案 0 :(得分:3)

问题在于您访问该值的方式,您可以在此处更改两件事。通过索引访问阅读器或在查询中正确命名列。

select max(studentNo) as StudentNo from studentInfo;

答案 1 :(得分:3)

您的查询会输出一行和一列数据,因此您可以考虑使用ExecuteScalar()代替ExecuteReader()

dbConnection dbCon = new dbConnection();
con = dbCon.doConnection();

SqlCommand cmd = new SqlCommand();


String query = "select max(studentNo) from studentInfo;";
cmd.Connection = con;
cmd.CommandText = query;
String x = cmd.ExecuteScalar().ToString();

答案 2 :(得分:1)

您需要在应用聚合函数

后为您的选择提供别名

即。从studentInfo中选择max(studentNo)为NO

并在阅读时

String x = reader [“NO”]。ToString();

答案 3 :(得分:0)

首先,您需要在列中设置正确的别名:

select max(studentNo) as 'studentNo' from studentInfo;

其次,您可能希望为表分配一个数据库:

select max(studentNo) as studentNo from databaseName..studentInfo;