我正在尝试将数据库表中的行数据获取到标签,条件是我希望在标签中显示最高值列以及其他字段,目前我的代码是:
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# 的新手并试图理解它,所以我迷路了,提前致谢。
答案 0 :(得分:1)
查询本身不正确。原因如下:
您没有说明您想要结果表中的哪一列 的最大值
当你在 where 子句中调整 select 语句时,你需要确保你的 WHERE 语句会给你一个真或假,目前它所做的只是获取最大值(如果你正确添加了列姓名)
select * from Results where COLUMNNAME= (select Max(COLUMNNAME) from Results)
在代码中执行查询之前,请始终确保在数据库上运行查询
答案 1 :(得分:1)
使用 ORDER BY
和 LIMIT
:
SELECT r.*
FROM Results r
ORDER BY r.Results DESC
LIMIT 1;
答案 2 :(得分:-1)
您可以像下面这样修改您的查询
`string qry = "Select ColumnName From Results where ColumnName in (SELECT Max(ColumnName) FROM Results)";`