2016-04-24 4 views
0

私は、2番目の目を見る必要があると思っています。私は新しいレコードを追加するだけで、同じエラーを取得して維持しようとし MySQLのsynaxでエラーが発生しました。新しいデータを挿入しました。C#

は、「SQL構文でエラーが発生しましたが、私はここにMySQLを使用していますと、テーブル

MySQLの

ためのスクリプトこちら
create table tbl_employee(
    employeeID smallint, 
    employee_Fname varchar(30), 
    employee_Sname varchar(30), 
    employee_AddressL1 varchar(100), 
    employee_AddressL2 varchar(100), 
    employee_PostCode varchar(10), 
    employee_tel_type enum('work', 'mobile', 'personal'), 
    employee_Image varchar(250), 
    employee_Job_Role  enum('admin','accounts','management','maintiantance','Sales'),  
    employee_Salary float, 
    employee_imagePath varchar(250), 
    employee_tel_no varchar(100), 
    Primary key(employeeID) 

); 

とありますC#のコード

 connected = DataConnection.getConn(); 

     MySqlCommand cmd = new MySqlCommand("", connected); // 
     //This is my insert query in which i am taking input from the user through windows forms 
     //insert into tbl_employee value (2,'John','Rafiq','234 Zoo Rd','Alcala','2388','work' ,'admin',3500.89,'C:\blindXimages','111-111' ); 
     string Query = "Insert into tbl_employee (employeeID,employee_fname,employee_Sname,employee_AddressL1,employee_AddressL2,employee_PostCode, employee_tel_type,employee_Job_Role,employee_Salary,employee_ImagePath,employee_tel_no)" + 
     "'value('" + Convert.ToInt32( this.txtEmployeeID.Text) + "'," + this.txtName.Text + "','" + this.txtSurname.Text + "','" + this.txtAddressL1.Text + "','" + this.txtAddressL2.Text + "','" + this.txtPostCode.Text + "','" + this.txtTelType.Text + "','" + this.txtJobRole.Text + "','" + Convert.ToDecimal(this.txtSalary.Text) + "','" + this.txtFaceName.Text + "','" + this.txtTelephoneNo.Text + "')"; 

     //This is command class which will handle the query and connection object. 
     MySqlCommand MyCommand2 = new MySqlCommand(Query, connected); 
     MySqlDataReader MyReader2; 

     MyReader2 = MyCommand2.ExecuteReader();  // Here our query will be executed and data saved into the database. 
     MessageBox.Show("Save Data"); 
     while (MyReader2.Read()) 
     { 
     } 
     // connected.Close(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 

    btnAddNew.Enabled = false; 
    MessageBox.Show("Data is save clearing all text boxes "); 
    clearTextBox(); 
} 

私は私の構文はちょうど私がラインで間違ったラインをつもりだし、把握することはできません、ダブル、トリプルチェックしています。意志非常に適切なこのサポート。

+0

SQLインジェクションの問題はすべて除いて、 'value'は' values'でなければならず、 '' 'が前にありません。 –

+0

準備されたステートメントを使用してもこのエラーを防ぐことはできませんでしたが、エスケープされた引用符とエスケープされていない引用符を減らすことで、見つけやすくなりました。真剣に、[prepared statements](http://dev.mysql.com/doc/connector-net/en/connector-net-programming-prepared-preparing.html)は学ぶのに良いことです。 –

答えて

0

"value"ではなく "values"を使用し、値の前にスペースを追加します。

+0

あまりにも多くのヨアヒム、ダーウィン、myksoftありがとう、私は自分自身のような初心者から学ぶ必要があります。値ではなく、値ではなく、この問題が発生します。 – Wazzie