用每个单元格的variables填充一个datagridview行
目前我能够导入我的Excel表格到DataGridView中。 但是,当我尝试基于不同的variables为该行的每一列添加一个全新的行,它不喜欢它。
我曾经希望使用
DataGridView1.Rows.Add(New String() {txt_id.Text, txt_name.Text, txt_modelnumber})
但是,我收到一个错误,说:“附加信息:当控件是数据绑定时,不能以编程方式将行添加到DataGridView的行集合中。
我如何使它不是数据绑定? 还是有另一种方式来填充细胞?
我的import代码:
Dim MyConnection As System.Data.OleDb.OleDbConnection Dim DtSet As System.Data.DataSet Dim MyCommand As System.Data.OleDb.OleDbDataAdapter MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\Users\Lenovo\Downloads\Test\exported.xls';Extended Properties=Excel 8.0;") MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Products$]", MyConnection) MyCommand.TableMappings.Add("Table", "Net-informations.com") DtSet = New System.Data.DataSet MyCommand.Fill(DtSet) DataGridView1.DataSource = DtSet.Tables(0) MyConnection.Close()
一旦将DataSource分配给DataGridView,您不能直接将行添加到DataGridView,您必须将它们添加到DataSource中。
你的情况你需要添加行到DataTable dtSet.Tables(0)
请参阅: 如何将新行添加到数据表vb.net
您唯一的select是将DataTable中的所有行手动添加到Grid中,如下所示:
For each dr As DataRow In dtSet.Tables(0).Rows DataGridView1.Rows.Add(New String() {dr.Item(0).ToString, etc}) Loop
我尝试了马特·威尔科发布的另一种方法,但我无法理解我如何使用它。 所以我查了一下微软的库,发现了一些完美的东西。
Dim table As DataTable = DtSet.Tables(0) Dim newRow As DataRow = table.NewRow() newRow("Product ID") = lastproductid + 1 newRow("Name") = txt_name.Text table.Rows.Add(newRow)
http://msdn.microsoft.com/en-us/library/system.data.datatable.rows(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1