我有一個數據庫,其中有一個名爲Schedule
的表。它看起來像這樣:在.mdb數據庫中執行INSERT時OleDbException
Schedule
--------
ScheduleID (number)
BackupID (number)
Repository (text)
Interval (text)
Type (text)
現在我想將值插入該表是這樣的:
List<string> scheduleData = this.scheduler.getSchedule();
string repository = scheduleData[0];
string interval = scheduleData[1];
string type = scheduleData[2];
List<string> selectedBackup = this.backupForm.getSelectedUser();
string backupID = selectedBackup[0];
string connetionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\db\\dbBackupUtility.mdb";
OleDbConnection conn = new OleDbConnection(connetionString);
conn.Open();
OleDbCommand sql = new OleDbCommand("INSERT INTO Schedule (BackupID, Repository, Interval, Type) VALUES (@BackupID, @Repository, @Interval, @Type)", conn);
sql.Parameters.AddWithValue("@BackupID", backupID);
sql.Parameters.AddWithValue("@Repository", repository);
sql.Parameters.AddWithValue("@Interval", interval);
sql.Parameters.AddWithValue("@Type", type);
sql.ExecuteNonQuery();
conn.Close();
Howevery,我得到一個OleDbException每次程序執行這一行:
sql.ExecuteNonQuery();
我看不到有關異常的任何其他信息,但我曾嘗試在VS中使用查詢分析器手動插入值,這很奇怪。我已經嘗試了上面的讀取器或適配器,但我每次得到同樣的錯誤...
異常文本:
Message: "Syntax error in INSERT statement"
StackTrace = "at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
at WindowsFormsApplication1.BackupUtility.scheduler_VisibleChanged(Object sender, EventArgs e) in c:\Users\Teichler\Dropbox\VS_Projects\Projects\WindowsFormsApplication1\WindowsFormsApplication1\MainForm.cs:Line104."
Inner Exception: null
什麼是異常文本? –
我無法找到有關異常的更多信息,VS只是告訴我System.Data.dll中發生OleDbException。該信息顯示在輸出窗口中,程序執行正常進行。 – LeonidasFett
做一件事,在try - catch bock中粘貼上面的代碼。正確捕捉異常並讓我知道異常文本 –