2011-12-24 4 views
0

이 간단한 문제는 극복 할 수없는 것 같습니다. Sql Compact Edition - 간단한 select 문이 작동하지 않습니다.

나는 SQL CE를이 코드 라인을 실행하기 위해 노력하고있어 : 몇 가지 이상한 이유로

SqlCeCommand comSelect = new SqlCeCommand("SELECT * FROM Items WHERE barcode = '@barcode'", conn); 
comSelect.Parameters.Add(new SqlCeParameter("barcode", System.Data.SqlDbType.NVarChar, 100)).Value = barC; 

- 항상 다시 결과를 찾을 수 없습니다 베스가 즉으로 제공됩니다. 쿼리 문자열에 매개 변수 값을 직접 입력하면 다음과 같이됩니다.

SELECT * FROM Items WHERE barcode = '123ABC' 

다음은 완벽합니다. 열이 NVarChar이라는 것을 추가 할 것입니다.

이것이 작동하지 않는 이유는 무엇입니까? 이 사용

+0

(' '@의 barcode''가) 그때는 정말 ** 문자열 리터럴 **입니다 - 더 이상하지 않는 매개 변수입니다. 그래서 당신의 SELECT는'barcode' 열에'@ barcode'라는 값이 들어있는 항목을 찾고 있습니다. 이것은 분명히 당신이 원하는 것이 아닙니다 .... –

답변

2

시도 대신 당신이 무엇을

"SELECT * FROM Items WHERE barcode = @barcode" 

. @barcode에 따옴표가 없다는 점에 유의하십시오.

+0

고맙습니다 !! 나는 당신이 매개 변수를 NVarChar 타입으로 선언 할 때 그 자체로 따옴표를 넣었으므로 내가 넣을 때 그 문장은 다음과 같다 : "SELECT ... WHERE barcode = ''123ABC '' –

6

시도 :

당신은 작은 따옴표로 매개 변수를 넣으면
new SqlCeCommand("SELECT * FROM Items WHERE barcode = @barcode", conn); 
comSelect.Parameters.Add(new SqlCeParameter("@barcode", System.Data.SqlDbType.NVarChar, 100)).Value = barC; 
+0

도움이되지 않았다 : ( –

+0

미안하지만, 나는 따옴표의 부족을 놓쳤다. 당신의 대답은 좋다. –

관련 문제