Я продолжаю получать сообщение об ошибке data type mismatch in criteria expression
, когда я пытаюсь запустить параметризованный оператор sql в VB.Net в db ms-access db (.accdb).Несоответствие типов данных в выражении критериев.
Проблема с @PartNumber
, что я знаю, потому что я жестко запрограммировал ее, чтобы получить значение из массива, и это сработало. Я просто не знаю, как это исправить.
PartNumber
в таблице есть поле TEXT, и это строка в VB.Net, его длина составляет 20 в таблице, и далеко не 20 в форме Vb читается в.
Вот проблематичной код:
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
Попробуйте назначить 'trackParts (I, 0)' временной переменной правильного типа и использовать temp в вызове 'AddWithValue'. –
Как я могу опубликовать определение таблицы? Слишком много времени для публикации текста. Но PartNumber в таблице - это тип данных TEXT и то, что я посылаю к нему. Я помещаю ToString(), в довершение всего, что это тип данных String. EDIT: Питер, я уже пробовал это. Произошла такая же ошибка. – Josiah