2017-02-09 4 views
0

Ich habe ein Problem mit der Aktualisierung der DB mit OleDBCommandBuilder und typisierten Dataset. Wenn ich meine Datenbank mit vorbereiteten Panels bearbeite, sehe ich nach dem Update Änderungen in DataGridView. Aber diese Änderungen sind temporär, denn wenn ich meine Anwendung neu starte, werden Änderungen durch Originalinformationen aus der Datenbank ersetzt. Kann jemand ein Problem mit Code unten sehen?C# Aktualisierung Tabelle Adapter aktualisiert DB

var row = this.dataGridViewProducts.SelectedRows[0]; 
     DataRowView rowView = row.DataBoundItem as DataRowView; 
     ProductsRow productRow = rowView.Row as ProductsRow; 
     if (row != null) 
     { 
      ProductForm formEdit = new ProductForm(ref productRow); 
      bool success = false; 
      while (success == false) 
      { 
       try 
       { 
        formEdit.ShowDialog(); 
        if (this.productsTableAdapter1.Connection.State != ConnectionState.Open) 
         this.productsTableAdapter1.Connection.Open(); 
        var changes = nwindDataSet1.Products.GetChanges(); 
        if (changes != null) 
        { 
         OleDbCommandBuilder builder = new OleDbCommandBuilder(productsTableAdapter1.Adapter); 
         productsTableAdapter1.Adapter.UpdateCommand = builder.GetUpdateCommand(); 
         productsTableAdapter1.Adapter.Update(changes); 
         nwindDataSet1.Products.AcceptChanges(); 
        } 
        success = true; 
       } 
       catch (Exception error) 
       { 
        MessageBox.Show(error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
       } 

      } 
     } 

Antwort

Verwandte Themen