2009-02-06 10 views
9

Ricevo un DataTable da un DataSet e quindi associo il DataTable a un DataGridView. Una volta che l'utente modifica le informazioni su DataGridView, come faccio a prendere tali modifiche e reinserirle in un DataTable che è stato utilizzato che posso quindi reinserire nel mio DataSet?C# Problema: come si salvano le modifiche apportate in un DataGridView al DataTable utilizzato?

Desidero creare un pulsante di salvataggio sul mio DataGrid che, se premuto, salva effettivamente le modifiche.

Non so se posso essere più specifico di così, perché è una domanda abbastanza semplice.

Grazie in anticipo!

Fatemi sapere se avete bisogno di me per elaborare di più.

risposta

6

Se si utilizza associazione dati a un DataGridView, allora siete già aggiornamento del DataTable/DataSet. Se intendi le modifiche al database, allora è qui che entrano in gioco gli adattatori.

Ecco un esempio:

using System; 
using System.Data; 
using System.Linq; 
using System.Windows.Forms; 
static class Program 
{ 
    [STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 

     DataSet set = new DataSet(); 
     DataTable table = set.Tables.Add("MyTable"); 
     table.Columns.Add("Foo", typeof(int)); 
     table.Columns.Add("Bar", typeof(string)); 

     Button btn; 
     using (Form form = new Form 
     { 
      Text = "DataGridView binding sample", 
      Controls = 
      { 
       new DataGridView { 
        Dock = DockStyle.Fill, 
        DataMember = "MyTable", 
        DataSource = set 
       }, 
       (btn = new Button { 
        Dock = DockStyle.Bottom, 
        Text = "Total" 
       }) 
      } 
     }) 
     { 
      btn.Click += delegate 
      { 
       form.Text = table.AsEnumerable().Sum(
        row => row.Field<int>("Foo")).ToString(); 
      }; 
      Application.Run(form); 
     } 

    } 
} 
+0

Mio Dio, sai di cosa stai parlando! Per favore, guarda la mia altra domanda e aiutami, sembra che tu possa essere la mia unica speranza! http://stackoverflow.com/questions/518239/c-issue-what-is-the-simplest-way-for-me-to-load-a-mdb-file-make-changes-to-it. Grazie! Vedo se questo funziona per me. – OneShot

+0

Questo ha risposto alla mia domanda proprio lì. Qualunque DataTable che ho associato al DataGrid è già stato modificato. Ora, se solo riuscissi a capire come rimettere il DataTable nel file Access .MDB da cui proviene. :/ Grazie! – OneShot

+0

Bene, darò un'occhiata, ma avvertimento: conosco "non molto" su mdb o sull'uso di DataSet con rabbia. –

Problemi correlati