【问题标题】:SQL Session Syntax errorSQL 会话语法错误
【发布时间】:2015-12-08 17:44:58
【问题描述】:

我在 Visual Studio 中使用 GridView 并向其添加自定义 SQL 查询。

SELECT 
    [Type], [YogaType], [ReservationTime], [ReservationDate], 
    [SpacesLeft], [Cancelled], [SessionID] 
FROM 
    [Reservation] 
WHERE 
    (([CustomerID] = ?) 
     AND ([ReservationDate] > #?#) 
     OR ([ReservationDate] = #?# AND ([ReservationTime] > #?#)))

填写引号的信息来自会话。当我尝试测试它时出现以下错误。

查询表达式中的日期语法错误“(([CustomerID] = ?) AND ([ReservationDate] > #?#) OR ([ReservationDate] = #?# AND ([ReservationTime] > #?#))' .

有什么想法吗?我无法调试 ASPX 页面,无法设置已经尝试过的断点。我正在使用 MS Access 数据库

【问题讨论】:

  • 首先要尝试的是删除日期参数占位符周围的#。当您使用参数时,该规则不适用。然后你应该展示构建参数集合的代码并解释你传递给这些参数的数据类型
  • 客户ID为整数,Date和Time作为DateTime传递
  • 您能否在您的问题中添加使用的有效代码?例如,如果您使用 AddWithValue,那么就会出现很多问题。
  • 您应该展示如何调用数据库。我以为@是用来定义查询中的参数,例如@CustomerID
  • @SergiiZhevzhyk 这不是 OleDb 的情况,尽管 Access 支持该语法

标签: c# asp.net visual-studio ms-access


【解决方案1】:

我已经设法弄清楚了,在访问和查询构建器中使用了大量测试,这是有效的 SQL 查询:

SELECT [Type], [YogaType], [ReservationDate], [ReservationTime], [SpacesLeft], [Cancelled], [SessionID] FROM [Reservation] WHERE (([CustomerID] = ?) AND ([ReservationDate] > ?) OR ([ReservationDate] = ? AND ([ReservationTime] > ?)));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-13
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 2015-03-22
    • 2015-04-04
    相关资源
    最近更新 更多