You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Forms:如何从本地数据库查询含特定值的所有数据项

实现本地数据库的模糊查询(获取所有包含特定值的数据项)

嘿,看你已经用SQLite-net(从代码风格能看出来)搭好了本地数据库的基础查询方法,现在要扩展一个查询所有包含特定值的数据项的功能,这里给你适配现有代码的具体实现:

完整方法代码

直接新增一个方法就行,保持你现有的线程安全锁机制,用LINQ的Contains实现模糊匹配:

public List<MyCommunities> GetItemsContainingValue(string searchValue)
{
    lock (locker)
    {
        // 这里默认匹配officeName字段,你可以换成你需要的任意模型属性
        return database.Table<MyCommunities>()
                       .Where(item => item.officeName.Contains(searchValue))
                       .ToList();
    }
}

几个关键细节要注意

  • 线程安全不丢:和你现有方法一样,用lock (locker)包裹,避免多线程操作数据库时出问题。
  • 模糊匹配的底层逻辑:Contains会被SQLite-net自动转换成SQL的LIKE '%xxx%'语句,完美实现“包含特定值”的查询效果。
  • 灵活切换匹配字段:如果要匹配其他字段(比如社区名称、ID之类的),把item.officeName换成对应的属性就行,比如item.CommunityName.Contains(searchValue)。
  • 空值兜底处理:怕传入的searchValue是空字符串?可以加个小判断:
    if (string.IsNullOrEmpty(searchValue))
    {
        // 这里可以返回所有数据,或者空列表,看你业务需求
        return GetItems();
    }
    

顺便补全你没写完的方法

你之前的GetItemByOfficename代码好像没写完,给你补个完整版本参考:

public MyCommunities GetItemByOfficename(string office)
{
    lock (locker)
    {
        return database.Table<MyCommunities>()
                       .FirstOrDefault(item => item.officeName == office);
    }
}

内容的提问来源于stack exchange,提问作者Sreejith Sree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:17:35