2011-10-06 67 views
1

爲什麼會發生這種情況? :-S這個時間短而簡單。哦,我正在連接到一個MDB文件(2007 Access)。使用OleDB插入記錄訪問MDB

代碼:

public bool insertRecord(int SR_Number, string Serial_Number, string Model_Number, bool Chargeable, bool Priority, bool Rollback) 
    { 
     string cmdStr = "INSERT INTO Recovery_CD_Orders ([SR_Number], [Serial_Number], [Model_Number], [Chargeable], [Priority], [Agent_placing_order], [Rollback_reqd]) Values (@SR_Number, @Serial_Number, @Model_Number, @Chargeable, @Priority, @Agent_Placing_Order, @Rollback)"; 

     OleDbCommand cmd = new OleDbCommand(cmdStr, thisCon); 

     cmd.Parameters.AddWithValue("SR_Number", SR_Number); 
     cmd.Parameters.AddWithValue("Serial_Number", Serial_Number); 
     cmd.Parameters.AddWithValue("Model_Number", Model_Number); 
     cmd.Parameters.AddWithValue("Agent_Placing_Order", Environment.UserName); 
     cmd.Parameters.AddWithValue("Chargeable", Chargeable); 
     cmd.Parameters.AddWithValue("Priority", Priority); 
     cmd.Parameters.AddWithValue("Rollback", Rollback); 

     cmd.Connection.Open(); 
     cmd.ExecuteNonQuery(); 
     cmd.Connection.Close(); 
     cmd.Dispose(); 
     return true; 
    } 

錯誤:

Data type mismatch in criteria expression. 

表佈局:

SR_Number: Number 
Serial_Number: Text 
Model_Number: Text 
Agent_Placing_Order: Text 
Chargeable: Yes/No 
Priority: Yes/No 
Rollback: Yes/No 

回答

0

很難從什麼是問題的提出告訴。我懷疑這個問題與AddWithValue類型推斷有關。你最好的選擇是明確地聲明舊式時尚的類型,因爲這將告訴訪問使用什麼。

+0

感謝你們,我真的從其他地方拿走了那段代碼,並試圖應用它。最後我使用了.Add方法:-)感謝指針! – HeWhoWas