我在 VB.NET 中有一个以 Ms Access 作为后端的项目...将数据插入表时,查询和数据类型错误时没有错误,但有时会发生 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
那么你或任何人能帮我解决这个问题吗
最佳答案
对于 OP,您可以发布一个发生 OleDbException 时 cmdstr 值的示例吗?我怀疑 mqbt 是正确的,这可能是您的 DOB 字段无法解析 DateTime 提供的任何格式。
作为一个相关问题,使用 OleDbCommand.Parameters.AddWithValue 以这种方式更改 SQL 字符串中的参数是否是一种好的做法?
我一直在 VBA Access 中构建 SQL 字符串,只是将字符串与参数连接起来,然后使用 Docmd.RunSql() 执行它,这似乎很适合包含数十个参数的长 SQL 字符串。但是看参数和类型就简单了。我做错了吗?
关于vb.net - 条件表达式中的数据类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1775066/