2016-11-25 64 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

相关问题