2010-08-11 112 views
0

我有DataTable在SqlServer數據庫表中具有相同的結構。 要保存的數據在此數據表到SQL數據庫我用下面的代碼:DataTable最佳保存到sql數據庫

sqlCommand mcd; 

for(int i=0;i<dataTable.Rows.Count;i++) 
{ 
mcd=new SqlCommand(); 
cmd.CommandText="Insert into MSSQLtable values("+dataTable.Rows[i][0]+dataTable.Rows[i][1]+")"; 
cmd.ExecuteNonQuery(); 

} 

如何與另一種方式我插入數據?

回答

1

還有其他一些方法,請查看關於從.NET高性能批量加載到SQL Server的博文I wrote here。總之,您可以使用SqlDataAdapter執行批量插入(或更新),或者爲了獲得更好的性能,可以使用SQLBulkCopy(僅限插入)。 SqlDataAdapter方法演示了在數據庫中插入100,000條記錄需要花費大約25秒,而SqlBulkCopy則需要大約0.8秒。

每種方法都有優點/缺點 - 例如,如果您想要很好地處理錯誤並在發生特定行出錯時繼續使用,那麼SqlDataAdapter非常方便。

+0

是否可以初始化來自不同數據庫的數據(例如,Oracle,VisualFoxPro),然後使用SqlBulkCopy方法保存到Sql Server? – loviji 2010-08-11 10:27:38

+1

@loviji - 是的。您只需將來自其他源的數據加載到可以傳遞給SqlBulkCopy的數據中(例如,可以是數組或DataRows,DataTable,實現IDataReader的任何內容)。 – AdaTheDev 2010-08-11 10:40:22