2012-06-10 1 views
1

C# Visual Studio를 사용하여 ASP.NET에서 databinds를 테스트하고 있습니다. 하지만 자극적 인 문제가있어 ... 데이터베이스에서 모든 제품을 표시하려면 데이터 소스 쿼리를 사용하여 리피터를 사용하십시오. 쿼리는 다음과 같습니다 artikelnummer이 여러 테이블에 존재하기 때문에, 내가 전에 테이블 이름을 작성해야합니다Databinder Eval value.value가 작동하지 않습니다.

SELECT titel, prijs, Product.artikelnummer, bestandnaam FROM Product INNER JOIN (Foto INNER JOIN Productfoto ON Foto.[foto_id] = Productfoto.[foto_id]) ON Product.[artikelnummer] = Productfoto.[artikelnummer] ORDER BY titel;

. 하지만 리피터의 데이터를로드 할 수 있습니다 때, 하나의 이름처럼 작동 :

DataBinder.Eval(Container.DataItem, "bestandnaam")

그러나 나는 "artikelnummer" 사용할 때 :

DataBinder.Eval(Container.DataItem, "Product.artikelnummer")

을 나는 오류 : 데이터 바인딩을 : 'System.Data.Common.DataRecordInternal' 'Product'이름 가진 속성이 포함되어 있지 않습니다.

나는 어떻게 예술가를 읽을 수 있습니까? product_detailview가 기사 번호 (자신의 기사 번호)에서 데이터를로드하기 때문에 중요합니다.

누구나 ?? 당신은 당신의 SQL 출력 (선택 부분)에서 동일 여러 이름이있는 경우

답변

2

, 그들을 분리 할 때의 별명을 사용

SELECT titel, prijs, Product.artikelnummer as Productartikelnummer, bestandnaam FROM Product INNER JOIN (Foto INNER JOIN Productfoto ON Foto.[foto_id] = Productfoto.[foto_id]) ON Product.[artikelnummer] = Productfoto.[artikelnummer] ORDER BY titel; 

그러나, 나는 단지 artikelnummer 당신이 shouldn 있도록 한 번에 반환되는 참조 그것을 사용하는 데 문제가 없습니다.

DataBinder.Eval(Container.DataItem, "artikelnummer") 

결과 세트가 자동으로 '제품'을 제거합니다. 부분이 있으므로, 바인딩 메소드의 테이블 이름으로 컬럼 이름을 변환 할 수 없습니다.

관련 문제