2014-05-25 3 views
0

하나의 양식에 2 개의 DGV와 2 개의 데이터베이스가 있습니다. 하나는 트랜잭션을 볼 수 있고 하나는 헤더 세부 정보를 볼 수 있지만 다른 하나는 표시 할 수 없습니다. 디스플레이 헤더 세부 사항하나의 datagridview에 2 개의 데이터베이스를 병합하는 방법 C#

다른 데이터베이스의 기본 키나 ID의 데이터를 하나의보기 양식 안에있는 DataGridView로 병합하는 방법은 무엇입니까? 난 못해, 물론

SELECT * FROM TrHeaderTransaction, TrDetailTransaction 
    WHERE TrHeaderTransaction.ID = TrDetailTransaction.HeaderID 

, 당신의 필드의 이름을 모르고 : 나는 당신이 데이터베이스에 가입 할 필요가 생각

public HistoryTransaction() 
    { 
     InitializeComponent(); 
    } 

    private void HistoryTransaction_Load(object sender, EventArgs e) 
    { 
     //this is to get data from database 
     dataSource = con.executeQuery("SELECT * FROM TrHeaderTransaction"); 
     dataGridView1.DataSource = dataSource; 

     dataSource2 = con.executeQuery("SELECT * FROM TrDetailTransaction"); 
     dataGridView2.DataSource = dataSource2; 

     //to select data into dataTable 
     DataTable obj = con.executeQuery("SELECT * FROM TrHeaderTransaction"); 
     for (int i = 0; i < obj.Rows.Count; i++) 
     { 
      transBox.Items.Add(obj.Rows[i].ItemArray[0].ToString()); 
     } 
     transBox.SelectedIndex = 0; 
    } 

    private void CloseBtn_Click(object sender, EventArgs e) 
    { 
     this.Close(); 
    } 

답변

0

:

내 코드입니다 정확한 SQL을 제공하십시오.

사용할 수있는 Join 구문도 있습니다.

0

난 당신이 중 다음과 같다 데이터베이스 솔루션을 찾고있다 귀하의 요구 사항에서 이해할 수있는 무엇 :

enter code here 

SELECT h.*,d.* FROM TrHeaderTransaction h, TrDetailTransaction d 
WHERE h.TrHeaderTransaction.ID = d.TrDetailTransaction.ID and 
h.TrHeaderTransaction.SID = d.TrDetailTransaction.ID 

or 

Alternatively you can do the same using datatables at the front end; 
관련 문제