Несоответствие типов данных в выражении критериев

У меня есть одна деталь в 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

Так что можете ли вы или кто-нибудь помочь мне решить эту проблему, пожалуйста

2 ответа

Для OP, можете ли вы опубликовать пример значения cmdstr, когда возникает OleDbException? Я подозреваю, что mqbt прав, и, вероятно, ваше поле DOB не в состоянии проанализировать любой формат, заданный вашим DateTime.

Как связанный вопрос, является ли хорошей практикой использование OleDbCommand.Parameters.AddWithValue для изменения параметров в строке SQL таким образом?

Я всегда строил строки SQL в VBA Access, просто конкатенируя строку с параметрами и затем выполняя ее с помощью Docmd.RunSql(), которая, кажется, отстой для длинных строк SQL с десятками параметров. Но это просто увидеть параметры и типы. Я делал это неправильно?

Выразить ошибку несоответствия в деталях, помогает решить, куда она выдает проблему, для какого типа данных. В противном случае вы можете подробно проверить ошибку в окне сообщения об ошибке.

Другие вопросы по тегам