2008-10-31 3 views
0

동료의 웹 사이트에서 작업 중이며 실수로 TypeName 대신 TypeID를 표시하는 gridview를 표시합니다. 나는 그것이있는 것처럼 임의의 ID 번호 대신 실제 형식 이름을 넣고 싶습니다. 그는 페이지에 두 개의 "ObjectDataSource"가 있음을 알았습니다. 하나는 Type에 대한 것이고 다른 하나는 Item에 대한 것입니다. 항목은 항목이 어떤 유형인지에 대한 ID를 포함하며 이는 항목 데이터 소스에 모두 들어 있습니다. 그는 gridview를 채우기 위해이 ID를 당깁니다. 이 ID를 사용하여 NAME 양식을 다른 데이터 소스로 가져오고 NAME을 해당 특정 열의 gridview에 배치합니다. 이 작업을 수행 할 수 있습니까? gridview에서 두 개의 다른 데이터 소스를 사용할 수 있습니까?하나의 gridview - 두 개의 데이터 소스?

1) SELECT ID, Item, ItemTypeID FROM Item 
2) SELECT ID, ItemType FROM ItemTypes 

그리고 당신은 항목 이름과 그리드에 표시되는 항목 유형을 원하는 것 :

답변

4

내가이 권리를 이해하고있어 경우, 당신이해야하는 것은 이렇게 두 개의 데이터 소스입니다.

그리드에서 두 소스를 모두 사용할 수 있다면 기본적인 질문에 답하십시오. 예. 하지만 가장 효율적인 방법은 아닙니다. 첫 번째 행의 모든 ​​행에 대해 두 번째 데이터 소스를 걷는 것이 필요하기 때문입니다.

더 나은 방법은 두 데이터 소스를 함께 결합하고 하나만 갖는 것입니다.

는이 라인을 따라 뭔가로 처음 datasrouce의 SELECT 문을 수정 :

SELECT i.ID, i.Item, t.ItemType FROM Item i INNER JOIN ItemTypes t ON i.ItemTypeId = t.ID; 
+0

감사합니다 - 난 내 자신에 좀 그것을 알아 냈다. (글쎄, 나는 짐작한다) 그리고 방금 두 테이블에서 가져온 새로운 ObjectDataSource를 만들었다. 기존 SQL을 수정했을 때 이해할 수없는 오류가 발생했습니다. 새로운 데이터 소스를 작성하면 문제가 해결되지만 올바른 경로로 나를 잡을 수 있습니다 :) – Kolten

+0

아, 오류가 있습니다. INNER JOIN을 사용하면 자동으로 INSERT 문을 작성할 수 없습니다. 이 INSERT 문은 다른 곳에서 참조되기 때문에 폭탄을 투하했습니다. – Kolten

관련 문제