C# 如何在DB2中忽略字符串比较的大小写(CurrentCultureIgnoreCase不工作)
CurrentCultureIgnoreCase操作在SQL Server实例上运行良好。但是,它在我拥有的同一应用程序的DB2实例上不起作用 我试过以下几种方法: 工作(尽管关注性能影响): 不工作:C# 如何在DB2中忽略字符串比较的大小写(CurrentCultureIgnoreCase不工作),c#,.net,entity-framework,db2,C#,.net,Entity Framework,Db2,CurrentCultureIgnoreCase操作在SQL Server实例上运行良好。但是,它在我拥有的同一应用程序的DB2实例上不起作用 我试过以下几种方法: 工作(尽管关注性能影响): 不工作: s.POSTCODE.Trim().Equals(q, StringComparison.OrdinalIgnoreCase); s.POSTCODE.Trim().Equals(q, StringComparison.CurrentCultureIgnoreCase); 不工作: s.PO
s.POSTCODE.Trim().Equals(q, StringComparison.OrdinalIgnoreCase);
s.POSTCODE.Trim().Equals(q, StringComparison.CurrentCultureIgnoreCase);
不工作:
s.POSTCODE.Trim().Equals(q, StringComparison.OrdinalIgnoreCase);
s.POSTCODE.Trim().Equals(q, StringComparison.CurrentCultureIgnoreCase);
有什么建议吗
谢谢。使用string.Equals()
所以:string.Equals(s.POSTCODE.Trim(),q.Trim(),StringComparison.CurrentCultureIgnoreCase)代码>
希望有帮助 无论出于何种原因,在DB2上唯一有效的字符串比较名称是:
s.POSTCODE.Trim().ToLower() == q.Trim().ToLower();
您尝试过各种替代形式,但运气不佳。在第一个示例中,您也修剪了q。StringComparison.*IgnoreCase不执行任何修剪。我没有注意到!我想这和我的答案一样有效!您应该看看这一点,希望它能帮助您解决问题。获取以下错误:使用:var res=from s in db.ADDRESS where String.Equals(s.POSTCODE.Trim(),q.Trim()调用方法“Boolean Equals(System.String,System.String,System.StringComparison)”时提供的参数数量不正确,StringComparison.CurrentCultureInogoreCase)选择s;啊,你是这样用的,我不相信这是可能的,也许试试Linqvar res=dbContext.Address.Where(x=>string.Equals(x.POSTCODE.Trim(),q.Trim(),StringComparison.CurrentCultureIgnoreCase))代码>嗯。。也许可以在这里看到:但我只是尝试了我在评论中发布的代码,效果很好:在主帖子中,所有比较尝试在SQL Server数据库上都很好,但在IBM DB2数据库上没有。我认为这是一只虫子s