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

ASP.NET MVC应用中通过SQL筛选Activo为True的用户数据失败的问题求助

解决ASP.NET MVC中从CORE_USERS表筛选布尔类型Activo为True的问题

嘿,你的问题核心出在用字符串匹配逻辑去查询布尔类型字段了!数据库里的Activo是布尔类型(比如SQL Server里的bit类型),它存储的不是字符串"True"或"False",而是二进制的1/0或者数据库内部的布尔标识,所以用LIKE 'T%'这种字符串匹配方式肯定查不到数据。

正确的SQL语句方案

根据ASP.NET MVC常用的SQL Server数据库,给你两种可靠的写法:

写法1:直接匹配布尔值(SQL Server 2012及以上版本支持)

这种写法更直观,和代码里的布尔判断逻辑一致:

com.CommandText = "SELECT [NumMec], [NomeCompleto] FROM [CORE_USERS] WHERE [Activo] = TRUE";

写法2:匹配bit类型的数值1(兼容所有SQL Server版本)

SQL Server的bit类型中,True对应数值1,False对应数值0,这种写法兼容性拉满:

com.CommandText = "SELECT [NumMec], [NomeCompleto] FROM [CORE_USERS] WHERE [Activo] = 1";

额外优化建议

如果你的项目使用了ORM框架(比如Entity Framework),更推荐用强类型查询替代手写SQL,既安全又能避免类型匹配错误,示例代码如下:

var activeUsers = db.CoreUsers
                    .Where(u => u.Activo)
                    .Select(u => new { u.NumMec, u.NomeCompleto })
                    .ToList();

另外,你在View里判断Data.Activo == "True"的逻辑,说明实体类里的Activo可能被定义成了字符串类型?建议把它改成bool类型,这样和数据库的布尔字段映射更准确,后续也能避免不必要的字符串判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 21:32:48