环境sql server 2005, vs2005写了一个查询的sql语句,
比如select * from emp order by @sortMethod,用SqlDataAdapter返回DataSet, 想把排序方式做为一个参数写进去,即
mySqlDataAdapter.SelectCommand.Parameters.Add("@sortMethod", SqlDbType.VarChar).Value = myPageSetting.SortMethod;但是总报sql出错,跟踪了下,发现就问题就在order by的参数上,怀疑变成了
select * from emp order by 'desc'怎么处理,各位有好的解决办法吗?
比如select * from emp order by @sortMethod,用SqlDataAdapter返回DataSet, 想把排序方式做为一个参数写进去,即
mySqlDataAdapter.SelectCommand.Parameters.Add("@sortMethod", SqlDbType.VarChar).Value = myPageSetting.SortMethod;但是总报sql出错,跟踪了下,发现就问题就在order by的参数上,怀疑变成了
select * from emp order by 'desc'怎么处理,各位有好的解决办法吗?
解决方案 »
- 动态调用webServices问题
- .net 显示access数据时第一次正常,但多刷新几次就出现未指定错误
- 下載附件問題,請大俠幫忙, 報Property evaluation failed錯
- 关于ajax控件对脚本的影响
- asp.net防盗链问题
- 请教一个DataList中ItemTemplate的问题
- 问一个 网站浏览权限分级 的问题,web.config 的设置问题 !!!!!
- .net调试 可以正常运行但是调试时无法跳过错误。还有谁有aop方面的资料啊?
- 初学,问一简单问题:什么是UserControl,什么是Server Control它们有什么区别?
- 请教:如何获得页面的对象?
- .net c# 坐标画图
- 在。NET中,做WEB开发时,类库文件中的异常如何以对话框的形式显示到页面上,就跟在页面中捕获异常一样?
也可以用StringBuilder自己组装字符串,应该就行
mySqlDataAdapter.SelectCommand.Parameters.Add("@sortMethod", SqlDbType.VarChar).Value = "myPageSetting.SortMethod";
这样不行啊
sqlBuilder.Append(" and rownum between @startRow and @endRow ");
sqlBuilder.Append(" order by EnterpriseID ");
sqlBuilder.Append( myPageSetting.SortMethod);//mySqlDataAdapter.SelectCommand.Parameters.Add("@sortMethod", SqlDbType.VarChar).Value = myPageSetting.SortMethod;
这样可以,但是感觉很不爽,
因为我一大堆变量在下面一起Parameters.Add的,
单单这一个要放到sqlBuilder里面去,太不完美了
啊哈,这个你也想得出来啊?!你的参数查询不是都是用在常量数值上吗?你这里可是字段名啊!如果一定要通过参数提交一个变量,那么你的sql中就只能出现类似这样的语句了declare @sql nvarchar(100)
set @sql='select * from emp order by '+@sortMethod
.......
没用存储过程,我想传 asc 或者 desc 进sql中去,
但是mySqlDataAdapter.SelectCommand.Parameters.Add()方法总给这两个关键字加引号
用返回的dataTable.select("字段",“desc ”);
ok了,而且性能好