C# 问题:如何将在DataGridView中所做的更改保存回所使用的DataTable?

C# 问题:如何将在DataGridView中所做的更改保存回所使用的DataTable?,c#,datagrid,binding,datatable,dataset,C#,Datagrid,Binding,Datatable,Dataset,我从数据集中获取一个DataTable,然后将该DataTable绑定到DataGridView。一旦用户编辑了DataGridView上的信息,我如何获取这些更改并将它们放回使用过的DataTable中,然后将其放回数据集中 我想在我的DataGrid上创建一个保存按钮,当按下该按钮时,实际上会保存更改 我不知道我是否能说得更具体些,因为这是一个相当简单的问题 提前谢谢 如果您需要我详细说明,请告诉我。如果您正在使用数据绑定到DataGridView,那么您已经在更新数据表/数据集。如果您指的

我从数据集中获取一个DataTable,然后将该DataTable绑定到DataGridView。一旦用户编辑了DataGridView上的信息,我如何获取这些更改并将它们放回使用过的DataTable中,然后将其放回数据集中

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

我不知道我是否能说得更具体些,因为这是一个相当简单的问题

提前谢谢


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

如果您正在使用数据绑定到
DataGridView
,那么您已经在更新
数据表
/
数据集
。如果您指的是对数据库的更改,那么这就是适配器发挥作用的地方

下面是一个例子:

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

    }
}
使用系统;
使用系统数据;
使用System.Linq;
使用System.Windows.Forms;
静态类程序
{
[状态线程]
静态void Main()
{
Application.EnableVisualStyles();
数据集集=新数据集();
DataTable=set.Tables.Add(“MyTable”);
表.列.添加(“Foo”,typeof(int));
表.Columns.Add(“Bar”,typeof(string));
按钮btn;
使用(表格=新表格)
{
Text=“DataGridView绑定示例”,
控制=
{
新DataGridView{
Dock=DockStyle.Fill,
DataMember=“MyTable”,
数据源=集合
},
(btn=新按钮{
Dock=DockStyle.Bottom,
Text=“总计”
})
}
})
{
点击+=委托
{
form.Text=table.AsEnumerable().Sum(
row=>row.Field(“Foo”)).ToString();
};
申请表格;
}
}
}

如前所述,数据适配器是一种简单的方法

见:


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

天哪,你知道你在说什么!请你看看我的另一个问题,帮我解决好吗?看来你可能是我唯一的希望。谢谢我看看这对我是否有效。这就回答了我的问题。我绑定到DataGrid的任何DataTable都已被更改。现在,如果我能弄清楚如何将该数据表放回它来自的Access.MDB文件中:谢谢好吧,我会看一看,但要注意:我对mdb或愤怒地使用数据集“了解不多”。