C# DataGridView到MS Access数据库

C# DataGridView到MS Access数据库,c#,ms-access,datagridview,dataadapter,C#,Ms Access,Datagridview,Dataadapter,我正在尝试在DataGridView中的更改之后更新数据库 在多次更改代码后,我得出以下结论: primeTableAdapter.Update((PrimeDataSet.PrimeDataTable)(primeDataSet.Tables["Prime"])); 该方法返回添加/编辑的正确行数,并在不关闭整个应用程序的情况下再次输入表单。一切正常。新行保存在DataGridView中。但是,访问文件一点也没有更改,因此当我重新启动应用程序时,它们将消失 我已经使用“添加新数据源”向导将D

我正在尝试在DataGridView中的更改之后更新数据库

在多次更改代码后,我得出以下结论:

primeTableAdapter.Update((PrimeDataSet.PrimeDataTable)(primeDataSet.Tables["Prime"]));
该方法返回添加/编辑的正确行数,并在不关闭整个应用程序的情况下再次输入表单。一切正常。新行保存在DataGridView中。但是,访问文件一点也没有更改,因此当我重新启动应用程序时,它们将消失

我已经使用“添加新数据源”向导将DataGridView绑定到表中,现在使用的是Visual Studio 2010

我还发现了:处的代码,它似乎与我必须要做的类似,但我无法将vb.net代码转换为可以编译的代码。然而,我相当肯定这真的非常接近我必须要做的事情


稍后编辑:我已将数据库添加到项目中。通过将Copy to Output Directory属性设置为Copy if Newer,会话之间的更改是持久的。

如果您想付款,可以使用第三方(Spire dataExport),这会使事情变得更简单:将datagrid保存到msAccess中:

private void btnExportToAccess_Click(object sender, EventArgs e)
    {
        Spire.DataExport.Access.AccessExport accessExport = new              
        Spire.DataExport.Access.AccessExport();
        accessExport.DataSource = Spire.DataExport.Common.ExportSource.DataTable;
        accessExport.DataTable = this.dataGridView1.DataSource as DataTable;
        accessExport.DatabaseName = @"..\..\ToMdb.mdb";
        accessExport.TableName = "ExportFromDatatable";
        accessExport.SaveToFile();
    }

还有一个链接,您可以在其中找到更多说明

为了正确更新适配器,您需要将相应的INSERT、update、DELETE命令连接到适配器上。您还需要确保DatagridView绑定到DataTable,以便您在DGV中所做的所有更改都反映到基础数据源中。向导会解决这个问题。DataGridView也绑定到DataTable…如果您需要了解自己的工作,我不会依赖向导来完成任何事情。如果您不熟悉,请先编写代码。我已经了解了C#中数据库通信的基础知识。在我看来,与Java相比,这是很多不必要的痛苦。然而,我不得不在我的学校项目中使用C#和这个特殊的向导。我相信它比经典方法更快更容易,这就是为什么我至今还没有找到任何可行的解决方案,这绝对令人沮丧。我发现非常奇怪的是,在应用程序的整个运行过程中,添加都是持久的,这使我相信问题不是绑定,而是数据库文件的一些访问权限。你有没有遇到过这种情况?我想说的是:如果绑定确实是功能失调的,它难道不应该忽略我在DGV中所做的更改吗?它们在整个会话(启动)中都是持久的,但在另一个会话启动时它们会消失。。。