2017-08-17 91 views
1

的错误是从DataGridView数据插入到数据库的错误

{附加信息:您的SQL语法错误;检查 对应于您的MySQL服务器版本的权利 语法在行1}使用附近“)”手动

这是代码:

for (int i = 0; i < dataGridView2.Rows.Count; i++) 
{ 
    StrQuery = "INSERT INTO 'branch1_orders' VALUES (" 
     + order_num + "," 
     + dataGridView2.Rows[i].Cells["number"].Value + "," 
     + dataGridView2.Rows[i].Cells["price"].Value + ");"; 
    command.CommandText = StrQuery; 
    command.ExecuteNonQuery(); //the error 
} 
+0

如果您在StrQuery上放置了一个断点,那么实际正在运行的SQL是什么? – ChrisBint

+0

请添加生成的sql查询。 – Eisfuchs

+2

请使用SqlParameter来防止Sql注入! order_num应该是你的PK吗? – Bambuk

回答

0

的问题是在环它做的一个步骤,因为datagradview通过它添加行自

代码会

for (int i = 0; i < (dataGridView2.Rows.Count)-1; i++) 
      { 
       StrQuery = "insert into branch1_orders values(" 
        + order_num + "," 
        + dataGridView2.Rows[i].Cells["number"].Value + "," 
        + dataGridView2.Rows[i].Cells["price"].Value + ")"; 
       command.CommandText = StrQuery; 
       command.ExecuteNonQuery(); 

       try 
       { 
        command.ExecuteNonQuery(); 
       } 
       catch (MySql.Data.MySqlClient.MySqlException e2) 
       { 
        MessageBox.Show(e2.Message); 
       } 
      }