如何解决如何使用where子句从c#中的数据库表中获取MAX值
我正在尝试将数据库表中的行数据获取到标签,条件是我希望在标签中显示最高值列以及其他字段,目前我的代码是:
private void electionWinner()
{
try
{
conn.Open();
string qry = "SELECT * FROM Results WHERE (SELECT MAX(Results) FROM Results) ";
SqlCommand cmd = new SqlCommand(qry,conn);
string result = cmd.ExecuteReader().ToString();
winnerlbl.Text = result.ToString();
}
catch (SqlException es)
{
MessageBox.Show($"{es}");
}
}
}
我目前是 C# 的新手并试图理解它,所以我迷路了,提前致谢。
解决方法
查询本身不正确。原因如下:
-
您没有说明您想要结果表中的哪一列 的最大值
-
当你在 where 子句中调整 select 语句时,你需要确保你的 WHERE 语句会给你一个真或假,目前它所做的只是获取最大值(如果你正确添加了列姓名)
select * from Results where COLUMNNAME= (select Max(COLUMNNAME) from Results)
在代码中执行查询之前,请始终确保在数据库上运行查询
,使用 ORDER BY
和 LIMIT
:
SELECT r.*
FROM Results r
ORDER BY r.Results DESC
LIMIT 1;
,
您可以像下面这样修改您的查询
`string qry = "Select ColumnName From Results where ColumnName in (SELECT Max(ColumnName) FROM Results)";`
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。