A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 繼續墮蘿 初级黑马   /  2013-2-11 16:08  /  1444 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

所以像 样的场景,这里应该怎么写。

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

1 个回复

倒序浏览
用户输入的用参数就行,要是程序自己产生的就没必要用参数了,拼字符串也是可以的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马