Несоответствие типа данных в выражении критериев
У меня есть один файл в VB.NET с Ms Access As Backend... При вставке данных в таблицу нет ошибки при запросе и ошибке типа данных, но иногда происходит исключение OleDB
Ошибка: "Несоответствие типов данных в выражении критериев".
запрос -....
Dim cmdstr1 As String = ""
Dim constr As String = ""
Dim sqlQuery As String = ""
constr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\PhoneDiary\MyDiary.mdb"
cmdstr = "Insert Into [DetailData]([ShortName],[Title],[FirstName],[MiddleName],[LastName],[Occupation],[DOB],[Gender],[Country],[State],[Address],[ZipCode],[City],[Memo],[CategoryId],[SubCategoryId],[FavouritesID],[PhotoPath],[vCardPath]) VALUES(aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,kk,ll,mm,nn,oo,pp,qq,rr,ss)"
con = New OleDbConnection(constr)
com = New OleDbCommand(cmdstr, con)
con.Open()
com.Parameters.AddWithValue("aa", xx)
com.Parameters.AddWithValue("bb", cmbTitle.Text)
com.Parameters.AddWithValue.....
com.Parameters.AddWithValue....
.....................
......
com.ExecuteNonQuery()-------"Data type mismatch in criteria expression" Here occurs Error
Так может ли кто-нибудь помочь мне решить эту проблему, пожалуйста,
Ответы
Ответ 1
В OP вы можете отправить пример значения cmdstr при возникновении OleDbException? Я подозреваю, что mqbt прав, и, вероятно, ваше поле DOB не может анализировать любой формат, который предоставляет DateTime.
Как связанный вопрос, хорошо ли использовать OleDbCommand.Parameters.AddWithValue для изменения параметров в строке SQL таким образом?
Я всегда создавал строки SQL в VBA Access, просто конкатенируя строку с параметрами, а затем выполнял ее с помощью Docmd.RunSql(), который, кажется, всасывает длинные строки SQL с десятками параметров. Но просто посмотреть параметры и типы. Я делал это неправильно?
Ответ 2
Выражайте свою ошибку несоответствия в деталях, помогите решить, где она выбрасывает проблему, для которой тип данных. В противном случае вы можете подробно проверить ошибку в окне сообщений об ошибках