2013-03-20 1 views
4

MS Access 2003 데이터베이스에 연결된 강력한 형식의 데이터 집합을 구현하는 C# 응용 프로그램 (VS 2010 프리미엄 사용)이 있습니다. 나는 누구의 SQL 스크립트이 데이터 집합 내에서 테이블 어댑터를 구현하고있다 :테이블 어댑터가 예상 결과를 반환하지 않는 C# 강력한 형식의 데이터 집합

SELECT [ID], [Name], [Created By] 
FROM [Table Group] 
WHERE [Created By] = ? 
AND [ID] IN (SELECT [Group ID] FROM [Table Clustering] WHERE [Cluster ID] = ?) 
ORDER BY [Name] 

문제는이 가정 아무것도하지만 반환하지 않습니다이다 그것을해야한다 (I 내 데이터베이스에 샘플 데이터를 가지고). 나는 이미 MS Access 내에서 동일한 스크립트를 구현하려고했는데 (실제 데이터로?를 대체했다.) 나는 기대했던 데이터를 리턴한다.

삽입 된 SELECT 문에서 "WHERE [Cluster ID] = ?"을 제거하여 실험했는데 데이터가 반환되었지만 필요한 것은 아닙니다.

나는 또한 다른 실험을? 실제 [클러스터 ID]가 포함 된 내장 SELECT 문 내에서 데이터를 반환하지만 다시는 필요한 것은 아닙니다.

테이블 어댑터 내의 SQL 스크립트의 문제점은 무엇입니까? SELECT 내에서 SELECT를 구현할 수 있습니까? 또한, 그것은 구현할 수 있습니까? SELECT 내의 SELECT? 방법?

감사합니다. =)

The strongly-typed dataset I was taking about

예상대로 그렇게

The SQL builder I am using to create the table adapter

는 IDE가 자동으로 내가 수동으로 내에서 SQL 스크립트를 만들 필요가 없습니다 내가 한 테이블 어댑터, ERGO하는 방법을 (데이터를 검색 할)를 생성 코드 ... 모든 사람의 정보 (당신이 익숙하지 않은 경우를 위해), 생성 된 메소드는 (예상대로) 두 개의 매개 변수를 요구합니다. 하나는 [작성자]이고 [클러스터 ID]는 하나 ... 여기서부터 위에 게시 한 내 문제를 참조하십시오. : D

+0

이 시나리오를 다시 작성하는 데 유용한 샘플 스키마와 데이터를 제공 할 수 있습니까? 또한 이러한 매개 변수를 전달하기 위해 어떤 코드를 사용하고 있습니까? – PinnyM

+0

그냥 [WHERE [작성자] = @ CreatedBy'] 할 수 없으며'Parameters.AddWithValues ​​(@ 매개 변수 이름, @ 매개 변수 값); – MethodMan

+0

@DJKRAZE는 코드가 자동 생성 될 수 있다고 생각합니다. – Amitd

답변

0

나는 이것이 IDE 버그라고 생각한다. 특히 param1과 param2의 순서로 두 개의 매개 변수가 있습니다. 당신은 "?" 자리 표시 자의 순서는 동일하지만 쿼리를 실행하면 IDE에서 값을 채우기를 요청하면 마지막 "?" 첫 번째 매개 변수 (클러스터 ID)이며 첫 번째 매개 변수 (CreatedBy)는 두 번째 매개 변수입니다. 이미지에서

VS2012

이 ID는 첫 번째 줄과 이벤트 수는 이벤트가 제 ID의 초 카운트로 TableAdaptor 그들을에도 불구하고 두 번째 라인 :이 그림은 내가 무슨 뜻인지를 보여줍니다. 나는 프로그램을 통해 매개 변수를 전달하려고하지는 않았지만 IDE가 이런 방식으로 작동하는 버그처럼 보입니다.