Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 分析SQL Server Compact中的查询时出错_C#_Sql_Sql Server_Stored Procedures_Sql Server Ce - Fatal编程技术网

C# 分析SQL Server Compact中的查询时出错

C# 分析SQL Server Compact中的查询时出错,c#,sql,sql-server,stored-procedures,sql-server-ce,C#,Sql,Sql Server,Stored Procedures,Sql Server Ce,我使用WebMatrix运行我的查询,我认为它是正确的,但是我得到了一个错误 我的质询如下: var result = db.Query( @"SELECT e.event_id, e.title, e.description, e.event_start, e.event_end, e.group_id, e.recurring FROM event e JOIN Membership

我使用WebMatrix运行我的查询,我认为它是正确的,但是我得到了一个错误

我的质询如下:

   var result = db.Query(
                @"SELECT e.event_id, e.title, e.description, e.event_start, e.event_end, e.group_id, e.recurring
                FROM   event e
                JOIN   Membership m ON m.GroupID = e.group_id
                WHERE  e.recurring = 0
                AND    m.UserID = @0
                AND    e.event_start >= @1
                AND    e.event_end <= @2
                UNION ALL
                SELECT e.event_id, e.title, e.description, DATEADD(week, w.weeks, e.event_start), DATEADD(week, w.weeks, e.event_end), e.group_id, e.recurring
                FROM   event e
               JOIN   Membership m ON m.GroupID = e.group_id
               CROSS JOIN 
                ( SELECT  row_number() OVER (ORDER BY Object_ID) AS weeks
                  FROM SYS.OBJECTS
                ) AS w
                WHERE  e.recurring = 1
                AND    m.user_id = 4;
                AND    e.event_start >= @4
                AND    e.event_end <= @5", userID, start, end, userID, start, end
            );
var result=db.Query(
@“选择e.event\u id、e.title、e.description、e.event\u start、e.event\u end、e.group\u id、e.Recurtive
来自事件e
在m.GroupID=e.group\u id上加入成员m
其中e.r=0
而m.UserID=@0
和e.event_start>=@1
e.event_end=@4

和e.event_end在FROM之后,您可以列出多个以逗号分隔的表,结果将是所有这些表的交叉连接

但不能在连接后使用逗号语法。相反,请写出交叉连接:

JOIN   Membership m 
ON     m.GroupID = e.group_id
CROSS JOIN 
       (
       SELECT  row_number() OVER (ORDER BY Object_ID) AS weeks
       FROM SYS.OBJECTS
       ) AS w

Sql Server CE 4.0似乎不支持行号和其他窗口函数:(

Simon,您似乎遇到了很多情况,您希望在SQL Server Compact中使用SQL Server语法,但语法并非100%兼容。您是否考虑过在SQL Server 2012中使用Express或新的LocalDb?请先观看此演示,然后再回答:将Compact edition添加到标记中…我假设CE不支持
行_编号
:(我有什么办法可以解决这个问题吗?您使用row_number来生成数字序列-可能您需要在静态表中生成它。这不是一个优雅的解决方案,但总比没有好。谢谢您的回答。我可以在我的服务器上运行此查询的最佳/最简单的方法是什么?目前它完全是m。)ade使用WebMatrix/SQL Server CE。我担心迁移所有内容和更改代码需要大量的工作!:(如果您要查找周数列表,请创建一个表并用数字1到53填充它,这样做应该可以吗?我现在已迁移到SQL Server,我收到了错误信息”>关键字“WHERE”附近的语法不正确。知道为什么会出现这种情况吗?我已更新了上面的代码以显示当前运行的内容。此处可能是分号:
m.user_id=4;
SQL Server将分号解释为语句结尾。