gpt4 book ai didi

c# - 在小巧的查询中传递字段名称

转载 作者:行者123 更新时间:2023-11-30 22:00:30 25 4
gpt4 key购买 nike

我正在创建一个函数,用于检查数据库中是否检查了维护日。每列都是 Maintenance + DayName(MaintenanceSunday、MaintenanceMonday 等)。

看起来无论何时你传入一个对象,它都想获取正在检查的值而不是“注入(inject)”字符串。有没有办法安全地实现这一点(即不是 String.Format("where {0} = ...", field))?我真的不想在这里打开 SQL 注入(inject)的可能性(尽管有一个早期的检查来查看 q.ToUpper() 是否在“SUNDAY”、“MONDAY”等列表中,所以我想是这样的保障)

我尝试过这个,但它试图将“Maintenancesunday”与 true(位)进行比较时失败了:

string field = "Maintenance" + q; // q = "sunday"
return conn.Query<Data>("SELECT * FROM Data WHERE @Field = @Value", new { Field = field, Value = true }).ToList();

最佳答案

Dapper 仅使用 ADO.NET,它不支持参数化列名。我猜你需要一些硬编码来完成这个。

关于c# - 在小巧的查询中传递字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28482240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com