2013-07-03 3 views
1

사용중인 데이터베이스에 저장 프로 시저가 없기 때문에 WCF 서비스에 대한 SQL 쿼리를 실행하려고합니다. 아래 코드를 볼 수 있습니다. VS2010을 사용하고 Microsoft SQL Server에 연결하고 있습니다. 예외는 다음과 같습니다. 다중 부분 식별자를 바인딩 할 수 없습니다. 도와 주셔서 감사합니다.멀티 파트 식별자를 바인딩 할 수 없습니다. C# 및 SQL

 public List<ObjectCodeGroup> GetObjectCodeGroup() 
    { 
     TCDataDataContext dc16 = new TCDataDataContext(); 
     List<ObjectCodeGroup> results = new List<ObjectCodeGroup>(); 

     var objectCodeResults = dc16.ExecuteQuery<ObjectCodeGroup>(@"select t1.codeid," + 
      "t1.code, t1.catalogtype, t1.codegroup, t1.codetext, t1.codegrouptext, t1.codedesc, t1.state_id from CODES t1" + 

      "inner join (select MIN(codeid) codeid, codegroup from CODES group by codegroup)" + 
       "t2 on t1.codeid = t2.codeid and t1.codegroup = t2.codegroup WHERE catalogtype = 11"); 

     foreach (ObjectCodeGroup o in objectCodeResults) 
     { 
      results.Add(new ObjectCodeGroup() 
      { 
       codegrouptext = o.codegrouptext 
      }); 
     } 

     return results; 
    } 
+0

줄에? 우리에게 너무 많은 정보를 제공 할 수는 없지만 충분히 제공하기가 쉽지 않습니다. SSMS에서이 쿼리를 실행할 수 있습니까? – Amy

+3

줄 끝 부분에 공백을 넣으십시오. 또는 이미'@'기호를 사용하고있는 것처럼 개별 행을''+''넣기보다는 줄 바꿈을 추가하십시오. –

+1

@Jonesy 'from CODES t1 내부 조인 ('CODES의 별칭 인't1inner'를보십시오. –

답변

4

빈칸이 누락되어 문제의 일부입니다. 공백을 추가하십시오 (줄 끝 부분에 있음)!

var objectCodeResults = dc16.ExecuteQuery<ObjectCodeGroup>(@"select t1.codeid, " + 
"t1.code, t1.catalogtype, t1.codegroup, t1.codetext, t1.codegrouptext, t1.codedesc, t1.state_id from CODES t1 " + 
"inner join (select MIN(codeid) codeid, codegroup from CODES group by codegroup) " + 
"t2 on t1.codeid = t2.codeid and t1.codegroup = t2.codegroup WHERE catalogtype = 11"); 

원래 검색어는 SELECT BLAH FROM CODES t1inner join (MOREBLAH)...과 비슷합니다. 특히 t1inner을 살펴보십시오. 그게 쿼리를 뭉개보고있는 것입니다.

+0

감사합니다. Russell Uhl! 그게 너를 괴롭혔다. – Matt

+2

@matt : 다행히 도울 수있다 :) 미래에, 만약 당신이 절대적으로 그것 (리소스 파일이나 다른 방법에서 그것을 불러 오기보다는)과 같은 SQL 문자열을 가져야한다면, 나는 논리적이고 일관성있는 문자열을 깨뜨리기를 조언한다. 장소. 예를 들어'SELECT stuff' (br)'FROM table' (br)'JOIN other on a = b' (br)'WHERE c = d' (br) 등입니다. 더 나은 형식이어야한다. –

관련 문제