DataTable更新问题

时间:2009-10-27 15:18:40

标签: c# sql sql-server-2005 datatable dataadapter

保存数千行的最佳方法是什么,在做某事后,更新它们。

目前,我在使用

插入时使用数据表填充它
MyDataAdapter.Update(MyDataTable)

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

修改

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

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

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

这是我最好的。

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

2 个答案:

答案 0 :(得分:1)

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

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

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

如果你能提供更多关于什么 - 以及为什么 - 的详细信息,那么你可以提出问题,或许我们可以更好地为它量身定做答案。

答案 1 :(得分:1)

在回应你的意见时:

DataAdapter.Update()将逐行更新(和插入/删除)。如果您有个别更改,那么实际上没有更快的方法。如果你有系统的变化,比如SET Price = Price+ 2 WHERE SelByDate < '1/1/2010',你可以通过对数据库运行DbCommand来改善。

但也许您应该在执行之前担心交易和错误处理。