2017-05-29 60 views
0

正在尝试将一行添加到datagriview其中有从数据库中的记录,但是当我这样做,从数据库中现有的数据消失,显示新的记录(行)。可能是什么问题呢?请帮助 代码片段Visual Basic中添加行的DataTable具有从数据库值

Dim dt as new DataTable 
Dim R As DataRow = dt.NewRow 
R("ProductName") = txtProductName.Text 
dt.Rows.Add(R) 
DataGridView1.DataSource = dt 
+0

您需要使用DataGrid的DataSource属性作为添加新行的表格。但是如果你想从外部代码更新网格,你真的应该使用BindingSource – Steve

回答

0

您可以使用.Merge(),只要这两个表具有相同的列。

Dim dt as new DataTable 
Dim dtOldData as new DataTable 
Dim R As DataRow = dt.NewRow 
R("ProductName") = txtProductName.Text 

dtOldData = DataGridView1.DataSource 

dt.Rows.Add(R) 
dtOldData.Merge(dt) 

DataGridView1.DataSource = dtOldData 
+0

这似乎工作,但我有一个错误“DataType属性不匹配”。这个错误的原因是一列是文本,另一列是十进制。我试图将txtprice.tex转换为小数,但它不起作用。 受审 R( “UNIT_PRICE”)= Convert.ToDecimal(txtUnitPrice.Text) –

+0

解决我已经使用这个dt2.Merge(DT,真,MissingSchemaAction.Ignore)谢谢你们 –