我无法解决这个问题,我很沮丧。我想在数据库中对一个人进行基本搜索,以下工作正常
IQueryable<VwSomeView> dbresult = db.vwSomeView.FromSql("select * from vwSomeView where firstname like '%" + searchfor + "%' or lastname like '%" + searchfor + "%'");
但这很糟糕,因为可能存在 SQL 注入。所以我尝试了这个(因为我之前用它来调用存储过程并且它工作正常)
IQueryable<VwSomeView> dbresult = db.vwSomeView.FromSql("select * from vwSomeView where firstname like '%{0]%' or lastname like '%{0}%'",searchfor);
这是行不通的。我尝试过sql参数
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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)