从SQL Server数据库中获取MAX id会导致异常

Sid*_*raM 0 c# sql-server exception reader

我使用此代码ID从表中获取最大值PatientInfo:

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

因为我必须首先检查是否存在任何记录,我正在使用reader.HasRows.之后,代码应获取ID并将其放入文本框.但事实并非如此.它扔了一个IndexOutOfRangeException.我无法弄明白为什么.

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

其次,我试图在表格中手动输入数据,但它什么都不做,并说下面的事情

在此输入图像描述

因此,没有添加数据

har*_*ded 5

ID 不是您查询中的字段,您必须为您的别名添加别名 MAX

string query = "SELECT MAX(ID) AS ID FROM PatientInfo";
Run Code Online (Sandbox Code Playgroud)