C# 分析SQL Server CE中的查询时出错
我有一个运行在WindowsMobile上的运行SQLServerCE的现有应用程序,正在使用C语言的内联查询。这是我在Management Studio中正确运行的查询:C# 分析SQL Server CE中的查询时出错,c#,sql,windows-mobile,sql-server-ce,C#,Sql,Windows Mobile,Sql Server Ce,我有一个运行在WindowsMobile上的运行SQLServerCE的现有应用程序,正在使用C语言的内联查询。这是我在Management Studio中正确运行的查询: command = @"SELECT P_InspectionStep.InspectionStepID, P_InspectionStep.Sequence AS Sequence, P_InspectionStep.Tit
command = @"SELECT
P_InspectionStep.InspectionStepID,
P_InspectionStep.Sequence AS Sequence,
P_InspectionStep.Title AS Title,
P_InspectionStep.Body AS Body,
P_InspectionStep.Photo AS Photo,
P_Inspection.RevisionID
FROM
P_InspectionStep
LEFT JOIN
P_Inspection ON P_Inspection.InspectionID = P_InspectionStep.InspectionID
WHERE
P_Inspection.InspectionID = '" + mInspectionID + "'" +
@"AND P_Inspection.CreateDate = (SELECT MAX(P_Inspection.CreateDate) FROM P_Inspection)
UNION ALL
SELECT
C_InspectionStep.InspectionStepID,
C_InspectionStep.Sequence AS Sequence,
C_InspectionStep.Title AS Title,
C_InspectionStep.Body AS Body,
C_InspectionStep.Photo AS Photo,
C_Inspection.RevisionID
FROM
C_InspectionStep
LEFT JOIN
C_Inspection ON C_Inspection.RevisionID = C_InspectionStep.RevisionID
WHERE
C_Inspection.InspectionID = '" + mInspectionID + "'" +
@"AND C_Inspection.CreateDate = (SELECT MAX(C_Inspection.CreateDate) FROM C_Inspection)
ORDER BY 2;";
但在应用程序中运行它会返回以下SqlCeException:
分析查询时出错。[令牌行编号=10,令牌行偏移量=132,令牌出错=选择]
我已经做了很多搜索,但找不到如何解决这个问题。提供
(SELECT MAX(P_Inspection.CreateDate) FROM P_Inspection)
从另一个查询中提前运行。您不能有返回标量值的子查询,但可以返回一个集合,以便在中使用而不是相等测试:
... C_Inspection.CreateDate IN (SELECT MAX(C_Inspection.CreateDate) FROM C_Inspection)
我尝试了这一点,但在应用程序exe中出现了一个本机异常,我无法用调试器捕获该异常。看起来像是读卡器的移动方向。我将命令值复制到一个sql查询窗口中,它返回的数据很好。这个解决方案还导致了我在@Alex K.solution中描述的本机异常。