Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我有异常错误“System.Data.SqlClient.SqlException”类型的未处理异常发生在System.Data.dll中,靠近“ID”的语法不正确。”_C#_Sql_.net - Fatal编程技术网

C# 我有异常错误“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

这是我的代码,它显示了此异常:

“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 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();
     }
   }