程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在 MS Access 中保存来自 VB.Net Windows 窗体的数据,出现错误 System.Data.OleDb.OleDbException:“条件表达式中的数据类型不匹配。”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在 MS Access 中保存来自 VB.Net Windows 窗体的数据,出现错误 System.Data.oleDb.oleDbException:“条件表达式中的数据类型不匹配。”?

开发过程中遇到在 MS Access 中保存来自 VB.Net Windows 窗体的数据,出现错误 System.Data.oleDb.oleDbException:“条件表达式中的数据类型不匹配。”的问题如何解决?下面主要结合日常开发的经验,给出你关于在 MS Access 中保存来自 VB.Net Windows 窗体的数据,出现错误 System.Data.oleDb.oleDbException:“条件表达式中的数据类型不匹配。”的解决方法建议,希望对你解决在 MS Access 中保存来自 VB.Net Windows 窗体的数据,出现错误 System.Data.oleDb.oleDbException:“条件表达式中的数据类型不匹配。”有所启发或帮助;
str = "INSERT INTO Rent_transaction ([Username],[Type],[Plate No],[Start Date],[End Date],[@R_56_10586@l]) 
      VALUES('" & UsernameLog.Text & "','" & LabelType.Text & "','" & Plate.Text & "','" & StartDate.Text & "','" & EndDate.Text & "','" & @R_56_10586@l.Text & "')"
con.open()
cmd = New oleDbCommand(str,con)
cmd.ExecuteNonquery()

'represents sql and db connection that are used to fill the data set and update the data source
da = New oleDbDataAdapter(cmd)

'to check if there are any matches in the table 
da.Fill(ds,"Rent_transaction")

con.Close()
con.dispose()
@H_673_4@

错误在 cmd.ExecuteNonquery 中。我无法在ms访问中保存数据

解决方法

这里我将如何执行将记录插入到您的表中的任务:

Using con As OleDbConnection = New OleDbConnection(......)
    Dim str = "INSERT INTO Rent_transaction ([Username],[Type],[Plate No],[Start Date],[End Date],[@R_56_10586@l]) 
               VALUES(@name,@type,@plate,@init,@end,@@R_56_10586@l)"
    con.open()
    Dim cmd As OleDbCommand = New OleDbCommand(str,con)
    cmd.Parameters.Add("@name",OleDbType.VarWChar).Value = UsernameLog.Text
    cmd.Parameters.Add("@type",OleDbType.VarWChar).Value = LabelType.Text
    cmd.Parameters.Add("@plate",OleDbType.VarWChar).Value = Plate.Text
    cmd.Parameters.Add("@init",OleDbType.DatE).Value = Convert.TodatetiR_84_11845@e(StartDate.Text)
    cmd.Parameters.Add("@end",OleDbType.DatE).Value = Convert.TodatetiR_84_11845@e(EndDate.Text)
    cmd.Parameters.Add("@@R_56_10586@l",OleDbType.Integer).Value = Convert.ToInt32(@R_56_10586@l.Text)
    cmd.ExecuteNonQuery()
End Using
@H_673_4@

第一个更改是围绕创建 OleDbConnection 的 Using 语句。这将确保在代码退出 End Using 时正确关闭/处理连接。即使使用基于本地文件的数据库(如 MS-Access),这样做始终是最好的做法。

第二个变化是查询文本,现在我们有一个包含参数占位符的字符串。不再串联,不再引用变量,更易于阅读和理解构造。

第三个变化是参数的构建。如您所见,每个参数都定义了一个类型,该类型应与数据库表字段所期望的类型相匹配。 注意如何将最后三个参数的值转换为数据表预期的假定类型。这样,我们就不允许数据库自行执行转换,这可能会导致“类型不匹配”。

最后,所有与 OleDbDataAdapter 相关的代码都被删除了。

大佬总结

以上是大佬教程为你收集整理的在 MS Access 中保存来自 VB.Net Windows 窗体的数据,出现错误 System.Data.OleDb.OleDbException:“条件表达式中的数据类型不匹配。”全部内容,希望文章能够帮你解决在 MS Access 中保存来自 VB.Net Windows 窗体的数据,出现错误 System.Data.OleDb.OleDbException:“条件表达式中的数据类型不匹配。”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。