【问题标题】:Unable to mach strings in sqlite-net query in Greek language无法在希腊语的 sqlite-net 查询中处理字符串
【发布时间】:2020-01-21 13:55:24
【问题描述】:

我想根据用户输入的内容从 sqlite 数据库返回一些字符串。比较必须不区分大小写。虽然我的查询适用于英语数据,但它仅适用于所有字母都是大写字母的希腊语。所以我猜想 ToUpper() 方法在查询和代码中的执行方式不同。

我已将问题范围缩小到 ToUpper() 方法,因为当我在查询之外对过滤器字符串运行它时,它对大写字母表现出色。

var filterString = filter.Designation?.ToUpper();
            var sites = from c in MemoryService.DbContext.db.Table<Site>()
                         where filterString == null || c.Designation.ToUpper().Contains(filterString)

【问题讨论】:

    标签: xamarin.forms c#-7.0 sqlite-net


    【解决方案1】:

    我认为您需要使用特定于文化的比较,请在此处查看此帖子。 Compare strings with non-English characters?

    这假设您知道比较字符串将以哪种语言输入。

    【讨论】:

    • 您的建议是不可能的,因为上面一行在幕后转换为 SQL,不幸的是 Xamarin Forms 的 sqlite-net-pcl 插件无法识别这种比较
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 2020-04-10
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多