我正在尝试从数据库表中检索最新数据。 我使用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而不是值。 现在我缺乏解决问题的线索,因为我发现代码没有任何问题。 帮帮我这个
答案 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;