我有一个VB.Net应用程序。我把它和MS Access数据库连接起来。现在我必须执行一个查询。我的问题是:Update table1 set field1=replace(field1,'|','"')
这个查询在Access数据库的查询分析器中似乎工作得很好,但是当我在VB.Net代码中执行相同的操作时,它抛出一个错误,指出“表达式中未定义的函数'Replace‘”
我正在使用OLEDB连接和命令。我使用的是"executenonquery“特性。
有人能帮我吗?
发布于 2011-06-14 17:25:20
不幸的是,当您从VB.Net应用程序连接到Access数据库时,根本没有使用Access查询引擎。您使用的是Jet。Access中可用的某些功能(如、Replace、)在Jet中不可用。
经典的解决方案是组合使用Iif、Instr等(这些都是可用的)。是的,这不像用取代那么好,但你必须学会不用它。
发布于 2014-07-25 02:12:30
这个问题目前被接受的答案有点过时了。使用
Provider=Microsoft.ACE.OLEDB.12.0
下面的C#代码运行得很好:
cmd.CommandText =
"UPDATE table1 SET field1 = Replace(field1, '|', '\"')";
cmd.ExecuteNonQuery();换句话说,Replace()函数可能导致了旧的"Jet“OLEDB驱动程序(可能还有"ACE”驱动程序的早期版本)的问题,但从Access 2010的版本开始,这不再是问题。
https://stackoverflow.com/questions/6341465
复制相似问题