从 SQL 服务器数据库获取 MAX id 导致异常

Fetching MAX id from SQL Server database causes exception

我正在使用以下代码从 table PatientInfo 获取最大值 ID

private void LoadID()
{
    string query = "SELECT MAX(ID) FROM PatientInfo";

    using (SqlConnection cn = new SqlConnection(constr))
    using (SqlCommand cmd = new SqlCommand(query, cn))
    {
        cn.Open();

        SqlDataReader reader = cmd.ExecuteReader();

        if (reader.HasRows)
        {
            while (reader.Read())
            {
                txtid.Text = reader["ID"].ToString();
            }
        }
        else
        {
            // other code
        }

        reader.Close();
        cn.Close();
    }
}

因为我必须先检查是否存在任何记录,所以我使用reader.HasRows。之后,代码应获取 ID 并将其放入文本框。但事实并非如此。它正在抛出 IndexOutOfRangeException。我不明白为什么。

在我的数据库中,我插入了一条记录。但它在两种情况下仍然给出相同的结果(1.当我在 table 中没有数据和 2.当我在 table 中有数据时)

其次,我试图在 table 中手动输入数据,但它什么也没做,并说出以下内容

因此,没有添加任何数据

ID 不是您查询中的字段,您必须为您的 MAX

添加别名
string query = "SELECT MAX(ID) AS ID FROM PatientInfo";