簡體   English   中英

OleDbException未處理:查詢表達式中的語法錯誤(缺少運算符)

[英]OleDbException was unhandled: Syntax Error (missing operator) In Query Expression

我是使用Visual Stuido 2010 C#和Microsft Access 2007創建應用程序的新手。我打算創建一個應用程序,用戶可以在其中向數據庫(MS-Access)添加數據。 但是我收到一條錯誤消息,指出“ 查詢表達式中的語法錯誤(缺少運算符) ”。 我真的找不到我的代碼有什么問題。

這是我向數據庫添加數據的代碼:

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");
            }
        }
    }

這是錯誤消息的屏幕截圖: 在此處輸入圖片說明

您需要插入到語句中的值部分。

將值插入(fuel_limit_code,fuel_limit_description)值(?fuel_limit_code,?fuel_limit_description)

同樣,當您在ExecuteNonQuery語句上方的行中設置值時,您似乎需要使用description參數。

---編輯的答案---以下將起作用


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(?,?)";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM