2017-05-29 24 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)謝謝你們 –

相關問題