0

保存数千行并在执行某些操作后更新它们的最佳方法是什么。

目前,我使用一个数据表,填充它,当完成插入时

MyDataAdapter.Update(MyDataTable)

在对 MyDataTable 进行一些更改后,我再次使用 MyDataAdapter.Update(MyDataTable) 方法。

编辑:

很抱歉没有提供更多信息。

可能有多达 200.000 行将从 XML 文件创建。那里的行将被保存到数据库中。之后,每一行都会有一些过程。我需要更新数据库中的每一行。

我决定更新数据表并使用相同的数据适配器更新行,而不是逐行更新。

这是我最好的。

我认为可能有更聪明的方法。

4

2 回答 2

1

如果我理解正确,您正在执行两个单独的操作:将行加载到数据库,然后更新这些行。

如果您插入的行来自另一个 ADO.NET 支持的数据源,那么您可以使用 SqlBulkCopy 批量插入行,这将比使用数据表更有效。

一旦行在数据库中,我会假设您最好执行 SQLCommand 来修改它们的值。

如果您可以提供有关您提出问题的内容和原因的更多详细信息,那么也许我们可以更好地为它量身定制答案。

于 2009-10-27T15:26:44.067 回答
1

在回应您的评论时:

DataAdapter.Update()逐行更新(和插入/删除)。如果您有个别更改,则确实没有更快的方法。如果您有系统更改,SET Price = Price+ 2 WHERE SelByDate < '1/1/2010'最好对数据库运行DbCommand

但也许您应该在性能之前担心事务和错误处理。

于 2009-10-27T18:43:37.553 回答