2010-11-03 59 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次更新更快。