vb.net - 条件表达式中的数据类型不匹配

标签 vb.net ms-access

我在 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/

相关文章:

.net - 更新 VB 控制台中的当前行

.net - 事务范围 v SQLTransaction

asp.net - 句柄子句需要在包含类型或其基类型之一中定义的 WithEvents 变量

excel - 基于Excel VBA,创建ADODB对象还是使用DOCMD.RUNSQL更好?赞成与反对有哪些?

ms-access - 当其他报告进行过滤时, Access 报告不进行过滤

SQL:Not Like 产生的结果与 Like 的相反结果不同

sql-server - 使用vbNull将NULL插入sql server数据库表

vb.net - 有没有更好的方法来检索我的设置?

mysql - 获取 COUNT 将 NULL 值返回为 0 的问题

linux - 有什么可以替代Access的吗?