首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表达式中未定义的函数'Replace‘

表达式中未定义的函数'Replace‘
EN

Stack Overflow用户
提问于 2011-06-14 17:17:17
回答 2查看 4.7K关注 0票数 3

我有一个VB.Net应用程序。我把它和MS Access数据库连接起来。现在我必须执行一个查询。我的问题是:Update table1 set field1=replace(field1,'|','"')

这个查询在Access数据库的查询分析器中似乎工作得很好,但是当我在VB.Net代码中执行相同的操作时,它抛出一个错误,指出“表达式中未定义的函数'Replace‘”

我正在使用OLEDB连接和命令。我使用的是"executenonquery“特性。

有人能帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-14 17:25:20

不幸的是,当您从VB.Net应用程序连接到Access数据库时,根本没有使用Access查询引擎。您使用的是Jet。Access中可用的某些功能(如、Replace、)在Jet中不可用。

经典的解决方案是组合使用IifInstr等(这些都是可用的)。是的,这不像用取代那么好,但你必须学会不用它。

票数 4
EN

Stack Overflow用户

发布于 2014-07-25 02:12:30

这个问题目前被接受的答案有点过时了。使用

Provider=Microsoft.ACE.OLEDB.12.0

下面的C#代码运行得很好:

代码语言:javascript
复制
cmd.CommandText =
    "UPDATE table1 SET field1 = Replace(field1, '|', '\"')";
cmd.ExecuteNonQuery();

换句话说,Replace()函数可能导致了旧的"Jet“OLEDB驱动程序(可能还有"ACE”驱动程序的早期版本)的问题,但从Access 2010的版本开始,这不再是问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6341465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档