请大家帮忙看看SQL语句错哪了(Order by)?谢谢!
OleDbCommand DBCommand.CommandText =
"SELECT Leavewords.*,Replies.Body AS ReplyBody FROM " +
"(Leavewords LEFT JOIN ReplyLeaveword ON Leavewords.LeavewordID = ReplyLeaveword.LeavewordID) "
+ "LEFT JOIN Replies ON Replies.ReplyID = ReplyLeaveword.ReplyID "
+ "ORDER BY Leavewords.CreateTime DESC "
说明:
Leavewords是数据库中的留言表,包含ID(int),内容(Text),创建时间(Date)。
Replies是数据库中的回复表,包含ID(int),内容(Text),创建时间(Data)。
ReplyLeaveword是数据库中的映射表,只有两个字段,表示每个留言ID对应的回复ID,以 "| "分隔。
SELECT语句的前半部分是将三个数据表合并成一个,经检测没有问题,可以运行。但是一旦加上了后面的ORDER BY以后就提示出错了,以下是asp.net提供的出错页面信息:
============================
“/”应用程序中的服务器错误。
--------------------------------------------
至少一个参数没有被指定值。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。
============================
请大家帮忙,谢谢!
------解决方案--------------------中断代码,把SQL语句调试出来后,直接在查询分析器中执行。
------解决方案----------------------try
OleDbCommand DBCommand.CommandText =
"SELECT Leavewords.*,Replies.Body AS ReplyBody FROM " +
"Leavewords LEFT JOIN ReplyLeaveword ON Leavewords.LeavewordID = ReplyLeaveword.LeavewordID "
+ "LEFT JOIN Replies ON Replies.ReplyID = ReplyLeaveword.ReplyID "
+ "ORDER BY Leavewords.CreateTime DESC "