2013-12-14 89 views
-1

我想插入到數據庫中,但是我得到這個錯誤,說「關鍵字'表'附近有語法錯誤。請注意,關鍵字表是我想要的表的名稱對置件數據.. 什麼錯我的代碼 誰能幫助...語法嘗試插入數據庫時​​出錯

 public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      byte[] imageData = ReadFile(textBox8.Text); 
      da.InsertCommand = new SqlCommand("insert into Table values(@NationalID,@FirstName,@MiddleName,@LastName,@DateOfBirth,@Gender,@Address,@HomeTown,@StateOfOrigin,@MaritalStatus,@JobStatus,@ImagePath,@Image)", cn); 
      da.InsertCommand.Parameters.Add("NationalID", SqlDbType.VarChar).Value = textBox1.Text; 
      da.InsertCommand.Parameters.Add("FirstName", SqlDbType.VarChar).Value = textBox2.Text; 
      da.InsertCommand.Parameters.Add("MiddleName", SqlDbType.VarChar).Value = textBox3.Text; 
      da.InsertCommand.Parameters.Add("LastName", SqlDbType.VarChar).Value = textBox4.Text; 
      da.InsertCommand.Parameters.Add("DateOfBirth", SqlDbType.VarChar).Value = dateTimePicker1.Value; 
      da.InsertCommand.Parameters.Add("Gender", SqlDbType.VarChar).Value = comboBox4.Text; 
      da.InsertCommand.Parameters.Add("Address", SqlDbType.VarChar).Value = textBox5.Text; 
      da.InsertCommand.Parameters.Add("HomeTown", SqlDbType.VarChar).Value = textBox6.Text; 
      da.InsertCommand.Parameters.Add("StateOfOrigin", SqlDbType.VarChar).Value = comboBox1.Text; 
      da.InsertCommand.Parameters.Add("MaritalStatus", SqlDbType.VarChar).Value = comboBox2.Text; 
      da.InsertCommand.Parameters.Add("JobStatus", SqlDbType.VarChar).Value = comboBox3.Text; 
      da.InsertCommand.Parameters.Add("ImagePath", SqlDbType.VarChar).Value = textBox8.Text; 
      da.InsertCommand.Parameters.Add(new SqlParameter("@Image", (object)imageData)); 
      //da.InsertCommand.Parameters.Add("@Image", SqlDbType.Image).Value = pictureBox1.Image; 
      cn.Open(); 
      da.InsertCommand.ExecuteNonQuery(); 
      cn.Close(); 
+0

這就是爲什麼**你從來沒有命名錶'table' **。你需要引用/轉義它。 –

回答

1

「表」是SQL Server保留字。如果它實際上是你的表的名稱,那麼你需要用方括號括起名字:[表]

+0

Tha這樣做,但它引發了另一個異常,說「字符串或二進制數據將被截斷」 – ibfresh

+0

這是一個不同的問題 - 這意味着你正試圖插入太多的數據到一列 - 例如,把100個字符字符串轉換爲varchar(50)列 – Ray

相關問題