2012-04-26 152 views
1
 OleDbConnection conn = new OleDbConnection(connectionString); 
     conn.Open(); 
     cmd = new OleDbCommand(sqlQuery, conn); 
     cmd.CommandText = "INSERT INTO tickets (ProblemIncidentDate, ProblemIncidentTime, user, StateTagNumber, ProblemType, ProblemDescription, ProblemStatus) VALUES (@ProblemDate,@ProblemTime,@userIDNumber,@StateTag,@ProblemType,@ProblemDescription,@ProblemStatus)"; 
     cmd.Parameters.Add("@ProblemDate", OleDbType.Date).Value = labelProblemDate.Text.Trim(); 
     cmd.Parameters.Add("@ProblemTime", OleDbType.DBTimeStamp).Value = labelProblemTime.Text.Trim(); 
     cmd.Parameters.Add("@userIDNumber", OleDbType.Integer).Value = Convert.ToInt32(userID.ToString()); 
     cmd.Parameters.Add("@StateTag", OleDbType.VarChar).Value = textBoxStateTagNumber.Text.Trim(); 
     cmd.Parameters.Add("@ProblemType", OleDbType.VarChar).Value = comboBoxProblemType.SelectedItem.ToString(); 
     cmd.Parameters.Add("@ProblemDescription", OleDbType.VarChar).Value = textBoxProblemDescription.Text.Trim(); 
     cmd.Parameters.Add("@ProblemStatus", OleDbType.VarChar).Value = "Open";    
     cmd.ExecuteNonQuery();   //At this line exception is generating 
     conn.Close(); 

我的數據庫是一個Microsoft Access 2007我一直使用的OleDbConnection和OleDbCommand的

這裏插入一條記錄崩潰的字段類型

ID     AutoNumber 
ProblemIncidentDate Date/Time 
ProblemIncidentTime Date/Time 
user    Number 
StateTagNumber  Text 
ProblemType   Text 
ProblemDescription Memo 
ProblemResolution Memo 
ProblemStatus  Text 

我想不通爲什麼它崩潰

控制檯消息說

類型'系統的第一次機會例外.Data.OleDb.OleDbException」出現在system.data.dll

+1

您得到的錯誤是什麼? – Iridio 2012-04-26 16:17:05

+0

它可以幫助您發佈錯誤。通常,錯誤消息包含有關問題的提示。 – tsells 2012-04-26 16:18:10

+0

試着圍繞'[user]'放置括號,它可能是關鍵字。此外,您正在將字符串傳入Integer和DateTime字段。 – LarsTech 2012-04-26 16:18:54

回答

1

用正確的數據類型嘗試像

cmd.Parameters.Add("@ProblemDate", OleDbType.Date).Value = DateTime.Parse(labelProblemDate.Text.Trim()); 

cmd.Parameters.Add("@userIDNumber", OleDbType.Integer).Value = Convert.Int32(userID.ToString()); 
+0

什麼是時間的正確數據類型? – 2012-04-26 16:20:48

+0

必須是TimeSpan。查看http://msdn.microsoft.com/en-us/library/yy6y35y8.aspx – hkutluay 2012-04-26 16:24:06

+0

上的列表即使修復數據類型,我仍然崩潰。 – 2012-04-26 16:25:15

1

從我的評論轉換:

嘗試把括號[用戶]它可能是關鍵字。此外,您正在將字符串傳入Integer和DateTime字段。

0

我與不同的OleDb提供者一起工作,發現有些不喜歡命名參數,而是隻使用「?」作爲參數的佔位符。請注意,參數需要按照與插入相同的順序添加(就像您所擁有的一樣),因此請嘗試更改爲..

insert into YourTable(fld1, fld2, fld3) values (?, ?, ?)