2016-11-25 65 views
-1

我面臨這個問題,我有datagridview和一個數據表。列:Datagridview到Datatable

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

現在第一件事,datagridview的是空的形式加載時。我想要做的是通過多個文本框和combomoxes添加數據到datagridview,併爲此我使用數據表。

 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(); 

    } 

和錯誤是「列SERIAL_NUMBER'不屬於表」

+0

從它似乎列綁定值的誤差有問題。使用正確的綁定值 –

回答

0

首先你要創建一個數據表的特定列。而你的datagridview是空的,DataTable也是空的。這

DataTable invoice_table = (DataTable)invoice_data.DataSource; 

盈.. 載入您的表格,您可以創建數據表與列。

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

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

實際上,我自己創建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

你可以發送你的源代碼。因爲你的評論不清楚,理解。請嘗試在命令前提問或提問。 – user6730095

相關問題