2010-11-03 58 views
0

我在一个简单的C#应用​​程序中使用ADO.NET。C#和ADO.NET中System.Data.DataRow的缓慢更新

有两个表格,TableA和TableB。表A是表B表A的父包含:

  1. ID作为主键(Int32)已
  2. 其他列。我认为这是无关的,所以我不会详细说明。

表B具有这些栏:

  1. ID(主键)(Int32)已
  2. tableAid(与表的外键关系)(的Int32和主键)
  3. X(双型)
  4. Y(double型)

我已经创建了表B.大约300行我想更新X和Y的列值以使每行具有相同的值。我目前正在这样做:

TableBRow[] rowsOfB = TableA.GetTableBRows(); 

for (int i = 0 ; i < rowsOfB.Length ; i++) 
{ 
    rowsOfB[i].X = newXvalue; 
    rowsOfB[i].Y = newYvalue; 
} 

此代码似乎需要很长时间才能运行。我的问题是(一)为什么这很慢?和(ii)更新表中许多行的推荐方式是什么?是否有批量更新方法?

+0

只需创建一个存储过程,从您的代码中调用该过程。 – RPM1984 2010-11-03 11:14:59

回答

0

如果您正在进行大型更新,通常会创建临时表,执行批量插入,加入此临时表并执行更新比执行n次更新更快。