gpt4 book ai didi

c# - 表达式中未定义的函数 'Replace' ,是否替换?

转载 作者:行者123 更新时间:2023-11-30 13:37:09 27 4
gpt4 key购买 nike

正如在这个问题中所读:Undefined function 'Replace' in expression ,我收到错误“表达式中未定义的函数‘替换’”,因为“您根本没有使用 Access 查询引擎”,但是我可以使用什么作为替代方案?显然“Iif、Instr 的组合”会起作用,但我找不到实际用这些替换某些东西的方法。

我只想删除值中的空格,我该怎么做?

const string strSql = "SELECT TOP 15 HOOFDGROEP.HOOFDGROEP, SUBGROEP.SUBGROEP, Artikels.*" +
" FROM (Artikels LEFT JOIN HOOFDGROEP ON Artikels.HOOFDGROEPID = HOOFDGROEP.ID)" +
" LEFT JOIN SUBGROEP ON Artikels.SUBGROEPID = SUBGROEP.ID WHERE REPLACE(ArtikelNaam, ' ', '') LIKE '%' + @ArtikelNaam + '%'";

var objCommand = new OleDbCommand(strSql, _objConnection);
objCommand.Parameters.Add("@ArtikelNaam", OleDbType.Char).Value = naamZoeker.Replace(" ", "");

最佳答案

如果您下载并安装

Microsoft Access Database Engine 2010 Redistributable

然后您可以在OleDbConnection 对象的连接字符串中使用以下内容...

Provider=Microsoft.ACE.OLEDB.12.0

...并且 Replace() 函数将可用于您的查询。例如,以下代码适用于我:

using (var conn = new OleDbConnection())
{
conn.ConnectionString =
@"Provider=Microsoft.ACE.OLEDB.12.0;" +
@"Data Source=C:\__tmp\testData.accdb;";
conn.Open();
using (var cmd = new OleDbCommand())
{
cmd.Connection = conn;
cmd.CommandText =
"UPDATE Table1 SET ProductType = Replace(ProductType, ' ', '')";
cmd.ExecuteNonQuery();
}
conn.Close();
}

请注意,您需要下载并安装与 .NET 应用程序具有相同“位数”的 Access 数据库引擎版本:32 位应用程序需要 32 位版本的数据库引擎,64 位应用程序需要64 位版本的数据库引擎。

关于c# - 表达式中未定义的函数 'Replace' ,是否替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24908724/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com