【问题标题】:C# Issue: How do I save changes made in a DataGridView back to the DataTable used?C# 问题:如何将在 DataGridView 中所做的更改保存回使用的 DataTable?
【发布时间】:2023-03-11 20:17:01
【问题描述】:

我从 DataSet 中获取 DataTable,然后将该 DataTable 绑定到 DataGridView。一旦用户编辑了 DataGridView 上的信息,我如何进行这些更改并将它们放回使用的 DataTable 中,然后我可以将其放回我的 DataSet 中?

我想在我的 DataGrid 上创建一个保存按钮,当按下它时实际保存更改。

如果我能比这更具体,我不知道,因为这是一个相当简单的问题。

提前致谢!

如果您需要我详细说明,请告诉我。

【问题讨论】:

    标签: c# datagrid binding datatable dataset


    【解决方案1】:

    如前所述,DataAdapter 是一种简单的方法。

    见: http://www.codeproject.com/KB/database/relationaladonet.aspx

    举一个非常简单的例子,我认为它涵盖了你所需要的。

    【讨论】:

      【解决方案2】:

      如果您使用数据绑定到DataGridView,那么您已经更新DataTable / DataSet。如果您的意思是更改数据库,那么这就是适配器发挥作用的地方。

      这是一个例子:

      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);
              }
      
          }
      }
      

      【讨论】:

      • 天哪,你知道你在说什么!请你看看我的另一个问题并帮助我,看来你可能是我唯一的希望! stackoverflow.com/questions/518239/…。谢谢!我看看这是否适合我。
      • 那回答了我的问题。我绑定到 DataGrid 的任何 DataTable 都已被更改。现在,如果我只能弄清楚如何将该 DataTable 放回它来自的 Access .MDB 文件中。 :/ 谢谢!
      • 好吧,我来看看,但需要注意的是:我对 mdb 或在愤怒中使用 DataSet 的了解“不是很多”。
      猜你喜欢
      • 2014-08-05
      • 2012-02-04
      • 2016-07-28
      • 2020-03-07
      • 2011-05-19
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 2017-09-26
      相关资源
      最近更新 更多