2009-02-06 23 views
9

Obtengo un DataTable de un DataSet y luego unir ese DataTable a un DataGridView. Una vez que el usuario edita la información en DataGridView, ¿cómo tomo esos cambios y los vuelvo a poner en una DataTable que se usó y que luego puedo volver a poner en mi DataSet?C# Problema: ¿Cómo guardo los cambios realizados en DataGridView en la DataTable utilizada?

Quiero hacer un botón Guardar en mi DataGrid que cuando se presiona realmente guarda los cambios.

No sé si puedo ser más específico que eso, porque es una pregunta bastante simple.

¡Gracias de antemano!

Avíseme si necesita más información.

Respuesta

6

Si está utilizando a un DataGridView de enlace de datos, entonces usted está ya actualizar el DataTable/DataSet. Si se refiere a cambios en la base de datos, entonces es allí donde los adaptadores entran en juego.

He aquí un ejemplo:

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

¡Dios mío, sabes de lo que estás hablando! ¿Podrías por favor mirar mi otra pregunta y ayudarme, parece que puedes ser mi única esperanza? http://stackoverflow.com/questions/518239/c-issue-what-is-the-simplest-way-for-me-to-load-a-mdb-file-make-changes-to-it. ¡Gracias! Veré si esto funciona para mí. – OneShot

+0

Eso respondió mi pregunta allí mismo sin embargo. Cualquier DataTable que haya vinculado al DataGrid ya está siendo modificado. Ahora, si solo pudiera encontrar la manera de volver a poner esa DataTable en el archivo Access .MDB de donde vino. :/ ¡Gracias! – OneShot

+0

Bueno, voy a echar un vistazo, pero advertencia: sé "no mucho" sobre mdb o el uso de DataSet con ira. –

Cuestiones relacionadas