开发者

Undefined function 'Replace' in expression

I am having a VB.Net application. I connect it with a MS Access database. Now I have to execute a query. My query is : Update table1 set field1=replace(fie开发者_开发知识库ld1,'|','"')

This query seems to work fine from the query analyzer of the Access database but when I do the same form the VB.Net code it throws me an error stating "Undefined function 'Replace' in expression"

I am using OLEDB connection and command. I am using the "executenonquery" feature.

Can any one help me?


Unfortunately when you connect to an Access database from you VB.Net application you aren't using the Access query engine at all. You're using Jet. Some of the functions available to you in Access (such as Replace) aren't available in Jet.

The classic solution is to use a combination of Iif, Instr etc (those are available). Yep, it's not as nice as having Replace to play with but you'll have to learn to do without.


The currently-accepted answer to this question is somewhat outdated. Using

Provider=Microsoft.ACE.OLEDB.12.0

the following C# code works just fine:

cmd.CommandText =
    "UPDATE table1 SET field1 = Replace(field1, '|', '\"')";
cmd.ExecuteNonQuery();

In other words, the Replace() function may have caused problems with the older "Jet" OLEDB driver (and perhaps earlier versions of the "ACE" driver) but as of the version for Access 2010 this is no longer an issue.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜