应用场景:
获取一个表中的最新几条数据。
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句可能存在注入漏洞,如果参数很多时写起来更加麻烦。
所以像 样的场景,这里应该怎么写。
|