我使用以下代码从表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();
}
}
因为我必须首先检查是否存在任何记录,所以我使用reader.HasRows
。之后,代码应获取ID并将其放入文本框。但事实并非如此。它投了IndexOutOfRangeException
。我无法弄明白为什么。
在我的数据库中,我插入了一条记录。但它仍然在两个条件下给出相同的结果(1.当我在表中没有数据时和2.当我在表中有数据时)
其次,我试图在表格中手动输入数据,但它什么也没做,并且说了以下内容
因此,没有添加数据
答案 0 :(得分:5)
ID
不是您查询中的字段,您必须为MAX
string query = "SELECT MAX(ID) AS ID FROM PatientInfo";