2013-09-04 2 views
0

데이터베이스에 4 개의 열이 있습니다. DataGridview에서이 데이터베이스 값을 가져옵니다. 하지만 DataGridview에 두 개의 열을 추가하려고합니다. 그래서 6 열로 datagridview를 만들고 싶습니다. 이 6 열 안에 4 개의 열이 데이터베이스 값으로 채워집니다. 어떻게해야합니까?데이터베이스에서 데이터를 가져올 때 datagridview에 여분의 열을 추가하는 방법

 OleDbConnection con = new OleDbConnection("CONNECTION STRING"); 
     con.Open(); 
     DataTable dtusers = new DataTable(); 

     OleDbCommand cmd = new OleDbCommand("Select Code,Description,Qnty,Rate from PurchaseTable'", con); 
     OleDbDataAdapter da = new OleDbDataAdapter(cmd); 
     da.Fill(dtusers); 
     dataGridView1.DataSource = dtusers; 
     dataGridView1.Columns[0].Name = "Code "; 
     dataGridView1.Columns[1].Name = "Description"; 
     dataGridView1.Columns[2].Name = "Qnty"; 
     dataGridView1.Columns[3].Name = "Rate"; 
     con.Close(); 

여기에는 4 개의 열이 있습니다. 코드, 설명, Qnty, 비율. 이 datagridview에 두 개의 열을 추가하고 싶습니다. 금액과 나레이션. 그러나 Amount 및 Narration 열은 PurchaseTable에 없습니다. 어떻게해야합니까?

+0

이 경우 금액과 나레이션에 대한 데이터를인가? 계산 된 위치는 어디입니까? – Paparazzi

답변

0

빈 열을 원할 경우 생성하고 삽입하십시오. 데이터가 데이터베이스에 있으면 쿼리에 조인을 추가하여 데이터를 검색하십시오.

추가 빈 열

DataGridView dgv = new DataGridView(); 
dgv.DataSource = dtusers; 

DataGridViewColumn amount = new DataGridViewColumn(); 
amount.HeaderText = "Amount"; 
amount.Name = "Amount"; 
dgv.Columns.Insert(0, amount); 

DataGridViewColumn narration = new DataGridViewColumn(); 
narration.HeaderText = "Narration"; 
narration.Name = "Narration"; 
dgv.Columns.Insert(0, narration); 
0

dataGridView1.DataSource = dtusers;, 당신이 디자이너를 통해 DataGridView에있는 미리 정의 된 열을 만들 수 있다고 생각합니다 .. DGV 데이터 소스로 테이블을 지정 (DataGridView를 클릭 -> 열 편집을 선택합니다).

원하는 6 개의 열을 모두 만듭니다. 처음 네 번에 DataPropertyName을 설정하여 쿼리의 열 이름을 지정합니다. 마지막 두 명은 비워 둡니다.

그리고이 후

당신의 코드가 될 것 (곳 form_Load 핸들러) ... DataGridView에 데이터를 바인딩하기 전에 datagridview.AutoGeneratedColumns = false;을 설정 기억 :

using (OleDbConnection con = new OleDbConnection("CONNECTION STRING")) 
{ 
    con.Open(); 
    DataTable dtusers = new DataTable(); 

    using(OleDbCommand cmd = new OleDbCommand("Select Code,Description,Qnty,Rate from PurchaseTable'", con)) 
    { 
     OleDbDataAdapter da = new OleDbDataAdapter(cmd); 
     da.Fill(dtusers); 
     dataGridView1.DataSource = dtusers; 
    } 
    con.Close(); 
} 
관련 문제