gpt4 book ai didi

c# - 将参数传递给 .fromsql

转载 作者:行者123 更新时间:2023-11-30 20:15:44 26 4
gpt4 key购买 nike

我无法解决这个问题,我感到很沮丧。我想对数据库中的某个人进行基本搜索,以下内容运行良好

 IQueryable<VwSomeView> dbresult = db.vwSomeView.FromSql("select * from vwSomeView where firstname like '%" + searchfor + "%' or lastname like '%" + searchfor + "%'");

但它很糟糕,因为可能存在 SQL 注入(inject)。所以我尝试了这个(因为我之前用它来调用存储过程并且它工作正常)

IQueryable<VwSomeView> dbresult = db.vwSomeView.FromSql("select * from vwSomeView where firstname like '%{0]%' or lastname like '%{0}%'",searchfor);

这是行不通的。我用 SqlParameter

试过了
SqlParameter para = new SqlParameter("search", searchfor);
IQueryable<VwSomeView> dbresult = db.vwSomeView.FromSql("select * from vwSomeView where firstname like '%@search%' or lastname like '%@search%'",para);

那也不行。

有人可以告诉我我做错了什么吗?谢谢

最佳答案

在 SQL 中使用 @search 作为变量(而不是在字符串中),它应该可以工作。

SqlParameter para = new SqlParameter("search", "%" + searchfor + "%");
IQueryable<VwSomeView> dbresult = db.vwSomeView.FromSql("select * from vwSomeView where firstname like @search or lastname like @search",para);

关于c# - 将参数传递给 .fromsql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52715823/

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