求助!! 找到个好的存储过程 ,可不能对时间排序???

eyis 2005-05-27 10:50:22
用这个存储过程好像不能对 时间字段排序

错误提示:“该字符串未被识别为有效的日期时间。有一个从索引 0 处开始的未知字。”

能不能给改一下 可以按时间排序的通用存储过程

或者是传参有问题?
workParm = mySqlCommand.Parameters.Add("@Sort", SqlDbType.DateTime);
mySqlCommand.Parameters["@Sort"].Value = "OrderDateTime";

参数分别是 表名, 页号, 返回记录数, 主键, 排序字段

CREATE PROCEDURE dbo.spAll_ReturnRows
(
@SQL nVARCHAR(4000),
@Page int,
@RecsPerPage int,
@ID VARCHAR(255),
@Sort VARCHAR(255)
)
AS

DECLARE @Str nVARCHAR(4000)

SET @Str='SELECT TOP '+CAST(@RecsPerPage AS VARCHAR(20))+' * FROM ('+@SQL+') T WHERE T.'+@ID+' NOT IN
(SELECT TOP '+CAST((@RecsPerPage*(@Page-1)) AS VARCHAR(20))+' '+@ID+' FROM ('+@SQL+') T9 ORDER BY '+@Sort+') ORDER BY '+@Sort

PRINT @Str

EXEC sp_ExecuteSql @Str
GO

...全文
203 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
haoco 2005-05-28
  • 打赏
  • 举报
回复
up
fengfangfang 2005-05-27
  • 打赏
  • 举报
回复
表中没有该字段
换个表中有的字段
singlepine 2005-05-27
  • 打赏
  • 举报
回复
错误提示 :列名 'OrderDateTime' 无效。列名 'OrderDateTime' 无效。
----------------
说明OrderDateTime字段在该数据库中不存在
singlepine 2005-05-27
  • 打赏
  • 举报
回复
ORDER BY '+@Sort中@Sort的值必须是该表中的一个字段,确认OrderDateTime是否是表的字段.
假如userid是数据库字段,则
workParm = mySqlCommand.Parameters.Add("@Sort", SqlDbType.varchar,50);
mySqlCommand.Parameters["@Sort"].Value = " userid";
eyis 2005-05-27
  • 打赏
  • 举报
回复
包括
@Sort VARCHAR(255) 传参 workParm = mySqlCommand.Parameters.Add("@Sort", SqlDbType.varchar,200);

@Sort DateTime 传参 workParm = mySqlCommand.Parameters.Add("@Sort", SqlDbType.DateTime);

都不行
eyis 2005-05-27
  • 打赏
  • 举报
回复
我试过了
workParm = mySqlCommand.Parameters.Add("@Sort", SqlDbType.DateTime);
改为
workParm = mySqlCommand.Parameters.Add("@Sort", SqlDbType.varchar,200);

错误提示 :列名 'OrderDateTime' 无效。列名 'OrderDateTime' 无效。
YapEro 2005-05-27
  • 打赏
  • 举报
回复
存储过程中@sort为varchar,自然参数类型传进来必须一致.
fengfangfang 2005-05-27
  • 打赏
  • 举报
回复
@sort是字符串型,不是日期型
fengfangfang 2005-05-27
  • 打赏
  • 举报
回复
workParm = mySqlCommand.Parameters.Add("@Sort", SqlDbType.DateTime);
改为
workParm = mySqlCommand.Parameters.Add("@Sort", SqlDbType.varchar,200);
eyis 2005-05-27
  • 打赏
  • 举报
回复
问题解决了 ,原来传递@SQL nVARCHAR(4000)的SQL语句里也要包括orderDateTime
bamboolove 2005-05-27
  • 打赏
  • 举报
回复
up!
学习ing
SeeSunSet 2005-05-27
  • 打赏
  • 举报
回复
ORDER BY convert(datetime,@Sort)
bj_niuniu 2005-05-27
  • 打赏
  • 举报
回复
真要是有一个通用的存储过程就好了,继续关注!
eyis 2005-05-27
  • 打赏
  • 举报
回复
这个表中有OrderDateTime字段 只用这段程序和存储过程操作一个表
khpcg 2005-05-27
  • 打赏
  • 举报
回复
估计是OrderDateTime有问题

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧