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

.NET Maui中如何实现带参数的SQLite查询并填充对象列表?

在MAUI中使用SQLite-net-pcl处理SQL参数的方法

你当前使用的是SQLite-net-pcl - 1.9.172和SQLitePCLRaw.bundle_green - 2.1.8,要替换字符串拼接的SQL查询,SQLite-net-pcl提供了几种安全的参数化查询方式,具体如下:

方法1:使用占位符?传递参数

直接在SQL语句中用?代替变量,然后将参数作为额外参数传给Query方法,底层会自动处理参数绑定:

String loc = "1290";
Locations = Database.Query<Location>("SELECT * FROM Location WHERE LocationID = ?", loc).ToList();

方法2:使用命名参数

如果查询中有多个参数,用命名参数会更清晰,SQL语句中用@参数名的形式,然后通过匿名对象传递对应值:

String loc = "1290";
Locations = Database.Query<Location>("SELECT * FROM Location WHERE LocationID = @LocationID", new { LocationID = loc }).ToList();

方法3:使用LINQ查询(更简洁安全)

SQLite-net-pcl支持直接用LINQ语法查询表,这种方式不需要手动写SQL,底层会自动生成参数化查询,完全避免字符串拼接问题:

String loc = "1290";
Locations = Database.Table<Location>().Where(location => location.LocationID == loc).ToList();

以上三种方式都能有效避免SQL注入风险,同时提升代码的可读性和可维护性,推荐优先使用LINQ方式,或者根据场景选择前两种参数化查询方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 19:10:04