當我嘗試執行INSERT INTO命令時出現此例外:

這是我的代碼:
private void AddQuiz_Button_Submit_Click(object sender, EventArgs e)
{
// Connection when button is clicked
OleDbConnection myConnection = GetConnection();
string myQuery = "INSERT INTO QuestionBank (Question, Choice A, Choice B, Choice C, Choice D, Category, Correct Answer) VALUES ('" AddQuiz_RichTextBox_Question.Text "' , '" OptionA_TextBox.Text "' , '" OptionB_TextBox.Text "' , '" OptionC_TextBox.Text "' , '" OptionD_TextBox.Text "' , '" AddQuiz_Category_Listbox.Text "' , '" AddQuiz_ListBox_Answer.Text "')" ; //SQuery statement
OleDbCommand myCommand = new OleDbCommand(myQuery, myConnection);
try
{
// Opening connection
myConnection.Open();
AddQuiz_Label_CheckConnection.Text = "Connection Successful";
// Execute the query
myCommand.ExecuteNonQuery();
MessageBox.Show("Question saved");
}
catch (Exception ex)
{
MessageBox.Show("Exception in DBHandler" ex);
}
finally
{
// Close connection
myConnection.Close();
}
}
uj5u.com熱心網友回復:
我看到了 800xxxx 訊息。在幾乎所有情況下,這意味著您的專案以錯誤的位大小為已安裝的 Access 版本運行。
如果您的 cpu 設定為“Any”,那么您需要將專案設定更改為 x86。
試一試吧。
所以這個設定:

然后在配置管理器中 - 為 x86 創建一個新設定

所以新的配置,然后:
將下拉串列更改為 x86 - 是的,您可以接受默認的“從以下位置復制設定”
你現在有這個:

然后關閉按鈕 - 你現在有這個:

當然反過來也是如此 - 如果您運行 office x64,則將專案強制為 x64,并且再次不要使用“any”。
uj5u.com熱心網友回復:
語法錯誤是由欄位名稱中的空格引起的。在 Access SQL 中,此類名稱必須用括號括起來:
string myQuery = "INSERT INTO QuestionBank (Question, [Choice A], [Choice B], [Choice C], [Choice D], Category, [Correct Answer]) VALUES ('" AddQuiz_RichTextBox_Question.Text "' , '" OptionA_TextBox.Text "' , '" OptionB_TextBox.Text "' , '" OptionC_TextBox.Text "' , '" OptionD_TextBox.Text "' , '" AddQuiz_Category_Listbox.Text "' , '" AddQuiz_ListBox_Answer.Text "')" ; //SQuery statement
也就是說,一定要學會使用引數——更簡潔、更容易除錯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/362821.html
上一篇:控制器應該是“無狀態的”,服務物件的最終變數是否會使這個有狀態?
下一篇:按天分組列-DAX
