문제

다음 코드가 있습니다.

ListBox.DataSource = DataSet.Tables("table_name").Select("some_criteria = match")
ListBox.DisplayMember = "name"

그만큼 DataTable.Select() 방법 배열을 반환합니다. System.Data.DataRow 사물.

내가 무엇을 지정하든 관계없이 ListBox.DisplayMember 속성에서 내가 보는 것은 모두 다음과 같이 표시되는 올바른 수의 항목이 있는 ListBox뿐입니다. System.Data.DataRow 내가 원하는 값 대신에 "name" 열!

결과 배열에 바인딩하는 것이 가능합니까? DataTable.Select(), 이를 반복하여 각 항목을 ListBox?

(루프에는 문제가 없지만 우아한 결말은 아닌 것 같습니다!)

도움이 되었습니까?

해결책

사용 데이터뷰 대신에.

ListBox.DataSource = new DataView(DataSet.Tables("table_name"), "some_criteria = match", "name", DataViewRowState.CurrentRows);
ListBox.DisplayMember = "name"

다른 팁

Josh는 DataView를 가지고 있습니다.매우 큰 망치가 필요한 경우 DataTable.Select("...")에서 행 배열을 가져와 다른 DataSet으로 병합할 수 있습니다.


 DataSet copy = new DataSet();
 copy.Merge(myDataTable.Select("Foo='Bar'"));
 // copy.Tables[0] has a clone

수행하려는 작업에 대한 이러한 접근 방식은 아마도 과잉일 가능성이 높지만 도움이 되는 행 배열에서 데이터 테이블을 가져와야 하는 경우가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top