2016-11-25 1 views
-1

나는이 문제에 직면하고있다. DataGridview와 datatable을 가지고있다.columns : Datagridview to Datatable

 VPfn_CreateDataGrid();//This fuction creates gridview columns 
     DataTable invoice_table = (DataTable)invoice_data.DataSource; 

이제 폼이로드 될 때 datagridview는 비어 있습니다. 내가 뭘 하려는지 여러 textboxes 및 combomoxes를 통해 datagridview에 데이터를 추가하고 그 datatable을 사용하고 있습니다.

 private void btn_add_Click(object sender, EventArgs e) 
    { 
     DataRow x = invoice_table.NewRow(); 
     x["serial_number"] = tsr.Text.ToString(); 
     x["item"] = combo_items.SelectedItem.ToString(); 
     x["item_rate"] = tr.Text; 
     x["item_qty"] = tq.Text; 
     x["item_unit"] = combo_unit.SelectedItem.ToString(); 
     x["item_vat"] = combo_vat.SelectedItem.ToString(); 
     x["amount"] = ta.Text; 

     invoice_table.Rows.Add(x); 
     invoice_data.Refresh(); 

    } 

는 그리고 오류가

+0

문제를 가지고있다. 적절한 바인딩 값을 사용하십시오 –

답변

0

는 먼저 특정 열이있는 데이터 테이블을 만들어야합니다 "열 'SERIAL_NUMBER은'테이블에 속하지 않습니다"입니다. datagridview가 비어있는 동안 DataTable도 비어 있습니다. 양식을로드하는 동안이의

DataTable invoice_table = (DataTable)invoice_data.DataSource; 

뿅 .. 당신은 열이있는 DataTable을 만들 수 있습니다. 이 시도가

private void btn_add_Click(object sender, EventArgs e) 
{ 
    DataRow x = invoice_table.NewRow(); 
    x["serial_number"] = tsr.Text.ToString(); 
    x["item"] = combo_items.SelectedItem.ToString(); 
    x["item_rate"] = tr.Text; 
    x["item_qty"] = tq.Text; 
    x["item_unit"] = combo_unit.SelectedItem.ToString(); 
    x["item_vat"] = combo_vat.SelectedItem.ToString(); 
    x["amount"] = ta.Text; 

    invoice_table.Rows.Add(x); 
    invoice_data.Refresh(); 
} 

DataTable invoice_table; //Global 
private void load() 
{ 
    invoice_table = new DataTable(); 
    invoice_table.Columns.Add("serial_number", typeof(int)); 
    invoice_table.Columns.Add("item"); 
    ..... 
} 

... 그것은 열 바인딩 값을 보인다 오류에서

+0

실제로 내가 datagridview에서 열을 자동으로 생성하는 기능은 데이터 테이블에 자동으로 생성되지 않습니다? private void VPfn_CreateDataGrid() { invoice_data.ColumnCount = 7; invoice_data.Columns [0] .Name = "Sr."; invoice_data.Columns [0] .HeaderText = "Sr."; invoice_data.Columns [0] .DataPropertyName = "serial_number"; invoice_data.Columns [0] .Width = 30; invoice_data.Columns [0] .ReadOnly = true; –

+0

소스 코드를 보낼 수 있습니까? coz 귀하의 의견을 이해할 명확하지 않습니다. 명령 전에 지시를 따르거나 질문을하십시오. – user6730095