从 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";
我正在使用以下代码从 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";