2011-11-24 88 views
0

我在使用Visual Stuido 2010 C#和的Microsft Access中創建一個應用程序是新的2007年,我打算創建一個應用程序,用戶可以將數據添加到數據庫( MS-訪問)。但是,我得到了「語法錯誤(缺少操作員)在查詢表達式」的錯誤提示。我真的找不到我的代碼有什麼問題。OleDbException是未處理:語法錯誤(缺少操作員)在查詢表達式

這是我在將數據添加到數據庫代碼:

private void buttonSaveFuelLimit_Click(object sender, EventArgs e) 
    { 
     string MyConString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\KKKKK\Documents\Visual Studio 2010\Projects\Trial\Trial\gxi.accdb"; 
     OleDbConnection connection = new OleDbConnection(MyConString); 
     OleDbCommand command = connection.CreateCommand(); 
     command.Connection = connection; 
     using (OleDbConnection conn = new OleDbConnection(MyConString)) 
     { 
      connection.Open(); 
      using (OleDbCommand com = connection.CreateCommand()) 
      { 
       command.CommandText = "insert into fuel_limit(fuel_limit_code, fuel_limit_description) values(?fuel_limit_code, ?fuel_limit_description)"; 
       command.Parameters.Add(new OleDbParameter("?fuel_limit_code", OleDbType.VarChar)); 
       command.Parameters.Add(new OleDbParameter("?fuel_limit_description", OleDbType.VarChar)); 
       command.Parameters["?fuel_limit_code"].Value = textBoxFuelLimitCode.Text; 
       command.Parameters["?fuel_limit_description"].Value = textBoxFuelLimitDesc.Text; 
       command.ExecuteNonQuery(); 
       MessageBox.Show("Data Saved"); 
      } 
     } 
    } 

這是錯誤消息的截屏: enter image description here

回答

1

---編輯答案--- 以下將工作


command.CommandText = "insert into fuel_limit(fuel_limit_code, fuel_limit_description) values(?, ?)"; 
command.Parameters.AddWithValue(new OleDbParameter("@fuel_limit_code",textBoxFuelLimitCode.Text)); 
command.Parameters.AddWithValue(new OleDbParameter("@fuel_limit_desc", textBoxFuelLimitDesc.Text)); 
command.ExecuteNonQuery(); 


---老答案---

這裏是一個需要修正


command.CommandText = "insert into fuel_limit(fuel_limit_code, fuel_limit_description)"; 
//should ne 
command.CommandText = "insert into fuel_limit(fuel_limit_code, fuel_limit_description) values(?,?)"; 
+0

我已經在查詢中添加了這些值,但發生了新的錯誤。這可能是什麼問題。謝謝 – sean

+0

我剛剛編輯了我的問題。 – sean

+0

更新的答案,當我用你的代碼,以及 –

4

你需要插入到語句的值的一部分。

INSERT INTO fuel_limit(fuel_limit_code,fuel_limit_description)值(?fuel_limit_code,?fuel_limit_description)

此外,它看起來像你的,你需要在右邊的ExecuteNonQuery statment上述線路設定值時使用的描述參數。

+0

感謝行那。我已經添加了代碼,但發生了新的錯誤。你認爲我的代碼有什麼問題? – sean

+0

我剛剛編輯了我的問題。 – sean

相關問題