2016-06-28 4 views
1

내 응용 프로그램은 데이터베이스를 입력으로 사용하고 데이터베이스의 테이블을 검색 한 다음 모든 테이블을 DataSet에 채 웁니다. 이제 데이터 세트에 데이터베이스 이미지가 생겼습니다. 이제 내 질문은이 데이터 집합을 Windows 형식으로 표시하는 방법입니다.Windows 양식에서 데이터 세트를 표시하는 방법은 무엇입니까?

DataSet은 매번 n 개의 테이블을 가지며이 테이블 각각에 임의의 수의 행과 임의의 수의 열이있을 수 있기 때문에 동적입니다.

문맥을 위해이 질문을 읽으십시오. compare databases (tables only) using C# and Ado.net

+0

데이터베이스 응용 프로그램을 빌드하려고합니까? – Steve

+0

@Steve 예, 데이터베이스 응용 프로그램을 작성하려고합니다. –

답변

2

테이블을 표시하는 가장 좋은 방법은 DataGridView (지금부터 DGV 사용)입니다. 문제는 dgv가 하나의 테이블 만 표시 할 수 있다는 것입니다.

그럼 어떻게 하죠? 하나 이상의 DGV (데이터 세트의 각 테이블에 하나씩)가 있거나 DGV가 표시하는 테이블을 변경할 수있는 방법이 있어야합니다.

여러 개의 DGV가 있다고 가정 해 보겠습니다. 양식에 dinamically 추가하는 방법을 다루지 않을 것입니다. 질문을 원하면 대답을 편집 할 것입니다.

당신은 데이터 세트의 각 테이블에 대해 하나 DGV를 만듭니다

List<DataGridView> DGVs = new List<DataGridView>(); 
foreach (DataTable DT in DS.Tables){ 
    DataGridView DGV = new DataGridView(); 
    DGV.DataSource=DT; 
    DGVs.Add(DGV); 
    //Add code for adding them to the form 
} 

이제 데이터 세트의 각 테이블에 대한 하나의 DataGridView에 있습니다.

는 하나 DGV을 가지고 당신은 내가 당신을 어떻게 결정해야 dinamically


추가하는 방법 컨트롤을 알려 보여주고 싶은 테이블을 선택 할 수 있도록 원하는 경우 그 (것)들을 추가하고 싶으면,이 경우에는 다른 하나가 울려 퍼집니다. 그들을 볼 만들기위한

는 다음을 수행해야합니다

  1. 그들을
  2. 그들을 볼 수 있는지 확인 찾은 아버지 제어
  3. 에 추가합니다. 아버지 컨트롤에 추가

는 간단하다 :

form1.Contols.Add(DGV) 

당신이 개의 다른 위치에서 그들의 각 하나를 원하지만, 이전을 기준으로하기 때문에 그들이 조금 더 까다 롭습니다 찾기. 이렇게하려면 Point을 만든 다음 X 픽셀을 아래로 이동해야합니다.그래서 :

Point p = new Point(0,0); //Position of the first DGV, choose the one you want 
p.Y += DGV.Height + 10; //Margin that you want 

후 화살표

DGV.Location = p; 

그리고 바로 DGV

DGV.Show(); 

당신은 각 루프의에서 모든 것을 할 수 있습니다 보여줄 필요에 DGV 위치 최저치를 그것은 다음과 같습니다 :

List<DataGridView> DGVs = new List<DataGridView>(); 
Point p = new Point(0,0); //Position of the first DGV, choose the one you want 
foreach (DataTable DT in DS.Tables){ 
    DataGridView DGV = new DataGridView(); 
    DGV.DataSource=DT; 
    DGVs.Add(DGV); 
    p.Y += DGV.Height + 10; //Margin that you want 
    DGV.Location = p; 
    this.Controls.Add(DGV); 
    DGV.Show(); 
} 

DGV 목록이 필요없는 경우 (이 경우 유용 할 수 있음) 첫 번째 및 DGVs.Add(DGV); 행을 무시할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 나는 그 질문을 갱신했다. 동적으로 추가하는 방법을 알려주시겠습니까? –

+0

좋아, 대답을 편집하고, 몇 분 후에 comne을 불러 들인다. – Aimnox

+0

@TemporaryNames 편집 – Aimnox

관련 문제