2017-05-29 1 views
0

Ich versuche, eine Zeile zu Datagriview hinzufügen, die Datensätze aus der Datenbank hat, aber wenn ich dies tun, verschwinden die vorhandenen Daten aus der Datenbank und zeigen neue Datensätze (Zeile). Was könnte das Problem sein? Bitte Hilfe Code-SchnipselVisual Basic Zeile zur Datentabelle hinzufügen, die Werte aus der Datenbank hat

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

Sie müssen die DataSource-Eigenschaft des DataGrid als Ihre Tabelle verwenden, in der Sie die neue Zeile hinzufügen. Aber Sie sollten wirklich eine BindingSource verwenden, wenn Sie das Gitter von externem Code aktualisieren möchten – Steve

Antwort

0

können Sie verwenden .Merge(), solange beide Datentabelle die gleichen Spalten.

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

Dies scheint zu funktionieren, aber ich habe einen Fehler "DataType-Eigenschaft nicht übereinstimmen". Der Grund für diesen Fehler ist, dass eine Spalte Text und die andere Dezimal ist. Ich habe versucht, die txtprice.tex zu dezimal als solche zu konvertieren, aber es funktioniert nicht. TRIED R ("unit_price") = Convert.ToDecimal (txtUnitPrice.Text) –

+0

Gelöst habe ich diese dt2.Merge (dt, True, MissingSchemaAction.Ignore) Danke euch –

Verwandte Themen