【问题标题】:Error on [order by] in SQL Server CESQL Server CE 中的 [order by] 错误
【发布时间】:2016-10-11 08:53:00
【问题描述】:

我有一个.sdf 数据库文件和一个表tblOrderLine。当我使用order by 时出现错误,当我删除order by 时它工作正常。任何帮助将不胜感激。

错误:

SqlCeException 被捕获 解析查询时出错。
[Token line number = 1,Token line offset = 80,Token in error = order by]

我的 SQL 代码:

SqlCeCommand com = new SqlCeCommand("(Select LineID, OrderID, ItemName, Code from [tblOrderLine] where Code=@code [order by] tblOrderLine.LineID desc)", con);
com.Parameters.Add("@code", SqlDbType.NVarChar).Value = code;

【问题讨论】:

  • 去掉Order by的方括号([])
  • 不带括号错误:解析查询时出错。 [令牌行号=1,令牌行偏移量=78,错误令牌=顺序]
  • 我不确定.sdf,但您也应该删除查询周围的括号new SqlCeCommand("Select LineID, OrderID, ItemName, Code from [tblOrderLine] where Code=@code order by tblOrderLine.LineID desc", con);

标签: c# sql winforms sql-server-ce


【解决方案1】:

您不应该将方括号用于关键字以外的其他关键字 数据库对象

删除关键字order by[]

更新

SqlCeCommand com = new SqlCeCommand(@"Select LineID, OrderID, ItemName, Code from [tblOrderLine] where Code=@code order by tblOrderLine.LineID desc", con);

试试这个

【讨论】:

  • 不带括号错误:解析查询时出错。 [令牌行号=1,令牌行偏移量=78,错误令牌=顺序]
  • @PlazaSele 更新了答案,粘贴了准确的查询。我已经更换了使用的括号。 ()
  • 它现在正在工作。谢谢。你能解释一下@“select...”和“select..”之间的区别吗?
  • 不删除“(从表中选择 *)”中的括号就足够了。但是使用 @ 会忽略查询中的换行符和空格。阅读更多关于字符串文字msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
  • 1970-01-01
  • 2017-06-13
  • 1970-01-01
  • 1970-01-01
  • 2016-02-16
相关资源
最近更新 更多