2014-02-17 1 views
0

이 명령은 C# 프로그램에서 예외를 throw하지만 SQL 쿼리 작성기에서 제대로 작동하는 것처럼 보입니다.SqlCeCommand throwing exception

using (SqlCeCommand cf = new SqlCeCommand("SELECT Lname FROM stats WHERE 
    (score = (SELECT MAX(score) FROM stats))", cn)) 

쿼리를 구문 분석하는 동안 오류가 발생했습니다.

토큰 줄 번호 = 1, 토큰 라인은

+0

사용하는 sql DB는 무엇입니까? – semao

+3

SqlCeCommand는 이러한 종류의 하위 쿼리를 지원합니까? – scheien

+2

"그러나 SQL 쿼리 빌더에서 제대로 작동하는 것 같습니다." -하지만 CE에 대해 이걸 달리고 있니? –

답변

-1

그것이

using (SqlCeCommand cf = new SqlCeCommand("SELECT Lname FROM stats WHERE 
    score IN (SELECT MAX(score) FROM stats)", cn)) 
+0

이유에 대한 설명을 추가 할 가치가 있지만 설명이없는 대답은 전혀 유용하지 않습니다 (따라서 upvote는 아직 없음) - SQL Server CE는 스칼라 값을 반환하는 하위 쿼리를 구문 분석하지 않으며 문제가 없습니다 하위 쿼리가 집합을 반환 할 때 (또는 집합을 반환 할 수있는 것처럼 파싱됩니다 (예 :'= '대신 IN을 사용) – GarethD

+0

LEGEND !!! 감사합니다 설명을 주셔서 감사합니다 –

+0

가레스 : –

1

내가 SqlCeCommand는 이런 종류의 지원 생각하지 않습니다 시도하십시오 SELECT = 오류 = 41, 토큰 오프셋 (offset) 하위 쿼리.

Management Studio로 테스트 할 때 Compact Edition 런타임 및 서버 버전을 실행하고 있습니까? 서버 버전에서는 많은 기능을 사용할 수 있지만 소형 버전에서는 일부만 사용할 수 있습니다.

Check out this post on MSDN forum.