标题: 关于三层中SQL参数查询的问题 [打印本页] 作者: 繼續墮蘿 时间: 2013-2-11 16:08 标题: 关于三层中SQL参数查询的问题 应用场景:
获取一个表中的最新几条数据。
DAL:
public List<SoftMODEL> GetNewList(int intTop,string strOrderBy)
{
DataTable table = SqlHelper.ExecuteDataTable("select top @intTop * from T_Soft order by @strOrderBy", new SqlParameter("@intTop", intTop), new SqlParameter("@strOrderBy", strOrderBy));
可是这样的查询语句会报错。
前台就用bll.GetNewList(10,"AddDate")这样来调用,但是在执行时,SQL语句报错,也就是top后面的不能参数化。
不能参数化,我就改成了拼接SQL语句
public List<SoftMODEL> GetNewList(int intTop,string strOrderBy)
{
DataTable table = SqlHelper.ExecuteDataTable("select top "+intTop+" * from T_Soft order by "+"strOrderBy".......
这样来写,功能是实现了,但是拼接SQL句可能存在注入漏洞,如果参数很多时写起来更加麻烦。