比如:
function bool SS(string no)
{
try{
return DataContext.SqlQuery<int>("select count(*) from Students where StudentNo='" +no+ "'").FirstOrDefault() > 0;
}
catch(Exception ex)
{。。。。}
}
上述方法怎么改成安全的参数化查询呀?小白,所以请说的直白一点,谢谢各位大侠了。求指导。
你这是在逗我吧,你这还EF呢,你这么喜欢SQL还是回去写ADO.NET好点。
如果是EF通常是这样的
var q = (from c in Datacontext.Students
where c.StudentNo=no).count();
我知道你这种写法是不是要先定义Students对应的实体,现在是我不想定义实体,有没有方法可以直接用?那岂不是要直接用sql语句吗?不然怎么写呢?求赐教呀
@草莓麦兜: 你这是在调戏大叔啊,不要实体了还用ORM框架干什么呢?当然有时候ORM框架不够灵活的话那就写SQL吧,传入参数就好了,用原始的ADO.NET里提供的方法。仅供参考,我几乎没用过ORM。
@会长: 我就是个小白呀,其实我也没太搞明白,项目中的前辈们的框架模式用的就是EF,但是针对某个功能我不想定义实体了,因为实在是没必要,所以才来请教的,不过我已经解决了,针对你说的ORM,还有EF还有原始的ADO.NET其实我自己也搞不懂,糊里糊涂的。。。
@草莓麦兜: 慢慢就懂了,最终走向迎娶白富美之路
用参数啊
最后还是自己解决的,方法如下:
function bool SS(string no)
{
try{
string sql = "select count(*) from Students where StudentNo=@No";
var args = new DbParameter[] {
new SqlParameter { ParameterName = "NO", Value = no},
};
return DataContext.SqlQuery<int>(sql, args).FirstOrDefault() > 0;
}
catch(Exception ex)
{。。。。}
}
与大家共享下