C# 我有异常错误“System.Data.SqlClient.SqlException”类型的未处理异常发生在System.Data.dll中,靠近“ID”的语法不正确。”
这是我的代码,它显示了此异常: “System.Data.SqlClient.SqlException”类型的未处理异常 System.Data.dll中出现“ID”附近的语法不正确 请帮我输入以下代码:C# 我有异常错误“System.Data.SqlClient.SqlException”类型的未处理异常发生在System.Data.dll中,靠近“ID”的语法不正确。”,c#,sql,.net,C#,Sql,.net,这是我的代码,它显示了此异常: “System.Data.SqlClient.SqlException”类型的未处理异常 System.Data.dll中出现“ID”附近的语法不正确 请帮我输入以下代码: public void count_accno() { conn.Open(); string str = "SELECT MAX(Category ID) FROM Category"; SqlCommand cmd = new SqlCom
public void count_accno()
{
conn.Open();
string str = "SELECT MAX(Category ID) FROM Category";
SqlCommand cmd = new SqlCommand(str, conn);
SqlDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
textBox1.Text = dr.GetValue(0).ToString();
}
int i = int.Parse(textBox1.Text);
i= i + 1;
textBox1.Text = i.ToString();
conn.Close();
dr.Close();
}
类别ID不是有效的标识符,因此您有一个例外。这里我们有三个典型的更正供您选择:
验证字段名Category ID并输入其正确版本,例如Category_ID、CategoryID
转义:类别ID,并具有有效的名称和空格:[类别ID]
有两个字段:选择MaxCategory、类别中的MaxID
代码:
MAX函数需要1个参数。
您正在使用两个参数调用MAX:Category和ID。列名似乎无效Category ID不是有效标识符,您是指Category_ID还是说,[Category ID]?或者两个字段:MaxCategory,MaxID?
public void count_accno() {
//TODO: instead of opening existing connection, create a new one
conn.Open();
try {
string str =
@"SELECT MAX([Category ID]) -- wild guess: escapement
FROM Category";
//DONE: wrap IDisposable into using
using (SqlCommand cmd = new SqlCommand(str, conn)) {
//TODO: Have a look at ExecuteScalar
using (SqlDataReader dr = cmd.ExecuteReader()) {
//DONE: we want 1st record only (while is not wanted here)
// The query will return 1 record;
// thus we, probably want to check for `Null` not for `dr.Read`:
if (dr.Read() && !dr.IsDBNull(0)) {
textBox1.Text = (Convert.ToInt32(dr[0]) + 1).ToString();
}
else {
// Table is empty
}
}
}
}
finally {
// finally: rain or shine close the connection
conn.Close();
}
}