如何使用where子句从c#中的数据库表中获取MAX值

时间:2021-03-28 10:36:33

标签: c# mysql sql

我正在尝试将数据库表中的行数据获取到标签,条件是我希望在标签中显示最高值列以及其他字段,目前我的代码是:

 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# 的新手并试图理解它,所以我迷路了,提前致谢。

3 个答案:

答案 0 :(得分:1)

查询本身不正确。原因如下:

  1. 您没有说明您想要结果表中的哪一列 的最大值

  2. 当你在 where 子句中调整 select 语句时,你需要确保你的 WHERE 语句会给你一个真或假,目前它所做的只是获取最大值(如果你正确添加了列姓名)

    select * from Results where COLUMNNAME= (select Max(COLUMNNAME) from Results)

在代码中执行查询之前,请始终确保在数据库上运行查询

答案 1 :(得分:1)

使用 ORDER BYLIMIT

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)";`