當我嘗試在VB.Net中將參數化的sql語句運行到ms-access數據庫(.accdb)時,我總是收到data type mismatch in criteria expression
錯誤消息。標準表達式中的數據類型不匹配。
問題出在@PartNumber
,我知道的很多,因爲我直接對它進行硬編碼以獲得數組的值,並且它工作正常。我只是不知道如何解決它。
在表PartNumber
是文本字段,並且它是在VB.Net一個字符串,它的長度是在表20和是遠不在VB形式20中被讀取。
這裏是有問題的代碼:
For i As Integer = 0 To trackParts.GetUpperBound(0) - 1
If (trackParts(i, 4) = "1") Then
cmd.CommandText = "INSERT INTO ServiceParts ([IncidentNumber], [PartNumber], [Quantity]) Values (@IncidentNumber, @PartNumber, @Quantity);"
cmd.Parameters.AddWithValue("@IncidentNumber", incidentNumberLabel.Text()
.ToString().ToUpper().Trim())
cmd.Parameters.AddWithValue("@PartNumber", trackParts(i, 0)
.ToString.ToUpper().Trim())
cmd.Parameters.AddWithValue("@Quantity", Convert.ToInt32(trackParts(i, 3)))
cmd.ExecuteNonQuery()
End If
Next
在此先感謝您的幫助,如果有任何需要的信息只是讓我知道,我會發布它。我還會用我嘗試過的新事物更新這個新事物,因爲我想要嘗試新事物。
發表表格定義。這可能與表中定義的列類型和數據不匹配。 – RBarryYoung 2013-04-28 22:25:15
嘗試將'trackParts(I,0)'分配給正確類型的臨時變量,並使用「AddWithValue」調用中的臨時變量。 – 2013-04-28 22:38:38
我該如何發表表格定義?發佈文本太長了。 但是表格中的PartNumber是數據類型TEXT,而我發送給它的是ToString(),而不管它是否是String數據類型。 編輯:彼得,我已經試過了。給出同樣的錯誤。 – Josiah 2013-04-28 22:46:58