2012-09-22 142 views
1

我有一個關於在SQL Server CE插入操作的問題,這是個例外錯誤解析查詢

enter image description here

,這些都是我的代碼:

private void button1_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      perintahsql = new SqlCeCommand("INSERT INTO lokasi (Campus, Address, Phone 1, Phone 2, Phone 3, Fax, Ext.number, Longitude, Latitude, Maps) VALUES (@Campus, @Address, @Phone 1, @Phone 2, @Phone 3, @Fax, @Ext.number, @Longitude, @Latitude, @Maps)", koneksi); 
      perintahsql.Parameters.AddWithValue("@Campus", comboBox1.Text); 
      perintahsql.Parameters.AddWithValue("@Address", textBox1.Text); 
      perintahsql.Parameters.AddWithValue("@Phone 1", textBox2.Text); 
      perintahsql.Parameters.AddWithValue("@Phone 2", textBox3.Text); 
      perintahsql.Parameters.AddWithValue("@Phone 3", textBox4.Text); 
      perintahsql.Parameters.AddWithValue("@Fax", textBox5.Text); 
      perintahsql.Parameters.AddWithValue("@Ext. number", textBox6.Text); 
      perintahsql.Parameters.AddWithValue("@Longitude", textBox7.Text); 
      perintahsql.Parameters.AddWithValue("@Latitude", textBox8.Text); 
      perintahsql.Parameters.AddWithValue("@Maps", textBox9.Text); 
      koneksi.Open(); 
      perintahsql.ExecuteNonQuery(); 
      koneksi.Close(); 
     } 
     catch (SqlCeException ex) 
     { 
      MessageBox.Show("Whoopss!! " + ex, "SQL Server CE Exception Message"); 
     } 
    } 

如何解決那個錯誤?謝謝。

+0

把消解點和檢查哪個代碼行拋出那個錯誤 –

回答

1

嘗試重命名你的變量,SQL亙古不變的許可證變量與空間。 更改變量@phone 1爲@電話1等,也@Ext。數量@ExtNumber 。希望它能解決你的查詢。

1

列名和變量名不能有空格。如果您在記事本++中打開插入語句(或手動計數),您會發現字符44是「電話1」中的第一個空格。

「INSERT INTO lokasi(校區,地址,電話」

+1

我認爲列名稱中的空格是允許的;你只需要在列名稱中包括[],例如[Phone 1]。 – Agent007

+1

你是對的,我只是不知道它是否會允許你用一個空格來命名變量,因爲'[@Phone 1]'可能會逃離@符號。「 – jtimperley

+0

那麼現在我明白了,但是我發現有些東西很難重命名列名,因爲它是一個CE版本, –