C# DataTable 更新 Access 数据库

     2023-05-07     177

关键词:

【中文标题】C# DataTable 更新 Access 数据库【英文标题】:C# DataTable update Access Database 【发布时间】:2014-01-08 14:46:27 【问题描述】:

如何将DataTable 保存到文件中。 accdb (Access) 现有一个?我使用了以下代码,但它不起作用:

using (OleDbConnection oledbConnection = new OleDbConnection(connection))

   oledbConnection.Open();
   string query = "SELECT * FROM Student";
   using (OleDbCommand oledbCommand = new OleDbCommand(query, oledbConnection))
   
      using (OleDbDataAdapter oledbDataAdapter = new OleDbDataAdapter(oledbCommand))
      
         using (OleDbCommandBuilder oledbCommandBuilder = new OleDbCommandBuilder(oledbDataAdapter))
         
            oledbDataAdapter.DeleteCommand = oledbCommandBuilder.GetDeleteCommand(true);
            oledbDataAdapter.InsertCommand = oledbCommandBuilder.GetInsertCommand(true);
            oledbDataAdapter.UpdateCommand = oledbCommandBuilder.GetUpdateCommand(true);
            oledbDataAdapter.Update(dataTable);
         
      
   
   oledbConnection.Close();

变量dataTable用文件的原始内容初始化,然后通过添加一行来修改它,现在我必须更新数据库中的表。

我尝试使用以下代码,但不起作用:(

OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM Student", connection);
OleDbCommandBuilder cmdBuilder = new OleDbCommandBuilder(da);
da.InsertCommand = cmdBuilder.GetInsertCommand(true);
// create and insert row in the DataTable
da.Update(dataTable);

【问题讨论】:

如果您在Watch Window 中发出dataTable.GetChanges(),您有什么变化吗? 这个方法对另一个函数有用,但对这个没有用。谢谢 【参考方案1】:

假设你对datatable做了一些改动,那么你可以通过这种方式将生成的update/insert/delete命令传递给适配器

oledbDataAdapter.DeleteCommand = oledbCommandBuilder.GetDeleteCommand();
oledbDataAdapter.InsertCommand = oledbCommandBuilder.GetInsertCommand();
oledbDataAdapter.UpdateCommand = oledbCommandBuilder.GetUpdateCommand();
oledbDataAdapter.Update(datatable);

现在适配器知道如何更新你的表了

【讨论】:

很好,史蒂夫,当我阅读 GetDeleteCommand() 行时,我错过了 OP 没有分配命令的事实! 是的! “无法添加您想要的数据量。字段太小。插入或粘贴的数据较少。” 嗯,这是另一个问题。它是由插入到表的列之一中的值生成的。这个(可能是文本列)的大小不足以包含用户在输入框中输入的数据(需要修剪或设置最大长度) 我建议发布一个新问题,它会比这个答案中的评论更受关注。

c#如何把datatable更新到access数据库

一次整张表public static void UpdateAccess(DataTable temp)    OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=Data.MDB;Persist Security Info=False;Jet OLEDB:Database ... 查看详情

由于使用自动增量添加到表中,如何使用更新的数据刷新 C# DataTable?

...于使用自动增量添加到表中,如何使用更新的数据刷新C#DataTable?【英文标题】:HowtorefreshaC#DataTablewithupdateddataduetoaddingtotablewithautoincrement?【发布时间】:2015-03-2321:40:52【问题描述】:将数据推送到数据库后,如何用新更新的数... 查看详情

c#如何将datatable中的数据批量更新到mysql数据库

datatable中的数据就是从数据库表中读取的,我现在想修改了datatable一个数据,然后再更新到数据库这个表中,注意不是重新插入,是把原来数据进行更新!!!谢谢参考技术AC#利用update更新数据到oracle数据库:第一步:打开oracle... 查看详情

从 Windows DataGridView DataTable C# 创建 Microsoft Access 表

】从WindowsDataGridViewDataTableC#创建MicrosoftAccess表【英文标题】:CreateMicrosoftAccessTablefromWindowsDataGridViewDataTableC#【发布时间】:2012-02-2801:15:14【问题描述】:我想知道如何在C#中从WindowsDataGridViewDataTable创建新的MicrosoftAccess表。我已经... 查看详情

参考 Datatable C# 更新 SQL 表的最佳方法

】参考DatatableC#更新SQL表的最佳方法【英文标题】:BestwaytoupdateSQLTablewithreferencetoaDatatableC#【发布时间】:2013-06-0707:04:15【问题描述】:我有一个包含Id列的数据表。Id列与我的表ID列匹配。我需要使用这个id为我的sql表设置一个值... 查看详情

[c#]datatable操作汇总(持续更新)

1、DataTable分组操作vargrow=dt.Select().GroupBy((row1)=>{returnnew{//分组的字段fieldA=row1["a"].ToString(),fieldB=row1["b"].ToString()};}).ToList();foreach(varitemingrow){stringaa=item.Key.fieldA;stringbb=it 查看详情

使用 Access 数据库在 C# 中更新

】使用Access数据库在C#中更新【英文标题】:UpdateinC#usingAccessdatabase【发布时间】:2018-06-0322:21:12【问题描述】:我一直在尝试在DataGridView中进行更新,但它一直返回这个没有为一个或多个必需参数指定值这是我的代码privatevoidbtn... 查看详情

C# 存储过程插入或更新 DataTable 问题?

】C#存储过程插入或更新DataTable问题?【英文标题】:C#storedprocedureinsertorupdatewithDataTableproblem?【发布时间】:2021-07-3023:09:51【问题描述】:我想用下面的代码添加或更新。我收到以下错误。我应该如何编辑这段代码?必须声明标... 查看详情

如何使用 C# 在 Access 中创建、更新、删除数据?

】如何使用C#在Access中创建、更新、删除数据?【英文标题】:Howtocreate,update,deletedatainAccessusingC#?【发布时间】:2011-04-0813:40:13【问题描述】:我正在使用MicrosoftVisualC#2008ExpressEdition创建这个项目。我想使用单选按钮插入数据如... 查看详情

C# Access 数据库更新问题 - 初学者 [重复]

】C#Access数据库更新问题-初学者[重复]【英文标题】:C#Accessdatabaseupdateproblems-beginner[duplicate]【发布时间】:2013-05-2901:14:35【问题描述】:我不知道为什么该程序无法运行,它实际上与我在上一个项目中使用的代码相同,所以为... 查看详情

如何使用 MS Access 数据库在 C# 中插入或更新表

】如何使用MSAccess数据库在C#中插入或更新表【英文标题】:HowtoInsertorUpdatetableinC#withMSAccessDatabase【发布时间】:2014-10-2517:39:05【问题描述】:我使用的是SQLServer数据库,然后我将SQL数据库导出到MSAccess并在C#项目中使用该数据库... 查看详情

从 DataTable C# 添加到 OLE 类型表

】从DataTableC#添加到OLE类型表【英文标题】:AddingtoOLEtypetablefromDataTableC#【发布时间】:2017-01-3018:28:37【问题描述】:我正在尝试使用来自DataTable对象的集合DataRows将数据添加到Access表中,并在查看器中看到一组很好的数据(43)记... 查看详情

使用 C# 使用 CSV 文件填充 DataGridView,并使用结果更新 Access 数据库

】使用C#使用CSV文件填充DataGridView,并使用结果更新Access数据库【英文标题】:UsingC#topopulateaDataGridViewwithCSVfile,andupdateAccessdatabasewithresults【发布时间】:2012-11-2619:33:42【问题描述】:我有一个与Access数据库(accdb)交互的C#Windows窗... 查看详情

如何在 C# 中更新或刷新与 Ms-access 连接的数据网格视图

】如何在C#中更新或刷新与Ms-access连接的数据网格视图【英文标题】:howtoupdateorrefreshdatagridviewconnectedwithMs-accessinC#【发布时间】:2012-05-0710:27:30【问题描述】:嗨,我已经将Ms-access2010(.mdb)中的数据库与C#连接起来,然后我想在dat... 查看详情

如何清空c#中datagridview的某一行数据??

...库中的信息一起删除掉,是用C#写的代码,急啊先把一个DataTable和数据库的表绑定,然后DataGridView.DataSource=DataTable删除时((DataTable)DataGridView.DataSource).Rows[行号].Delete();更新时把((DataTable)DataGridView.DataSource)作为DataTable去更新数据库... 查看详情

C# 中的批量更新

...经将所有插入信息收集到一个列表中,并将此列表转换为DataTable。然后我通过SqlBulkCopy将该列表插入数据库。我将生成的列表发送到哪里LiMyList,其中包含我要插入数据库的所有批量数据的信息并将其传递给我的批量插入操作Inser... 查看详情

在 C# 中更新 MS Access 表

】在C#中更新MSAccess表【英文标题】:UpdatinganMSAccesstableinC#【发布时间】:2011-02-1319:44:40【问题描述】:我正在我的Winforms项目中使用MicrosoftAccess数据库。我正在使用OLEDB进行连接。我正在尝试更新下表:TotalLogins--------------------IDA... 查看详情

c#中如何将datatable保存到数据库?

...名空间亲测,100万数据20字段5000毫秒(5秒)publicvoidInsertDatatable(DatatabledatatableA)SqlConnectiondestinationConnection=newSqlConnection(connectionString)//创建一个数据库连接;destinationConnection.Open();SqlBulkCopybulkCopy=newSqlBulkCopy(destinationConnection)//实例... 查看详情