在.net2.0中,sqlclient命名空間下增加了sqlbulkcopy類.
利用sqlbulkcopy類快速寫入大批量資料,針對sql server的優化,可以寫入datarow資料,datatable,datareader;
使用 sqlbulkcopy 類可以執行下列操作:
1.writetoserver(datatable)寫入資料表
2.writetoserver(datarow)批次寫入資料行
3.writetoserver(datatable,datarowstate)按行狀態寫入資料庫表
4.writetoserver(idatareader)寫入datareader物件
例:
stringconnstr ="
server=.;database=northwind;integrated security=true;async=true";
//填充資料集ds
dataset ds
=new
dataset();
sqlconnection conn
=new
sqlconnection(connstr);
sqldataadapter dadp
=new
sqldataadapter(
"select * from customers
", conn);
dadp.fill(ds);
//將資料集中表的所有行複製到目標表中
sqlbulkcopy bcp
=new
sqlbulkcopy(connstr);
bcp.destinationtablename ="
customers1";
bcp.writetoserver(ds.tables[
0]);
利用SqlBulkCopy插入資料
bulk方法主要思想是通過在客戶端把資料都快取在table中,然後利用sqlbulkcopy一次性把table中的資料插入到資料庫 如下 public static void bulktodb datatable dt catch exception ex finally public static...
C 利用 SqlBulkCopy 提交
最近要遷移資料,乙個老版本的資料遷移到新版本的資料庫中,字段 配置 引數什麼的完全不一樣。糾結啊,寫 估計只花了1 5的時間,對欄位引數這些簡直是慘不忍睹啊。還算比較清楚結構的我,都已經無語了。最後遇到sqlbulkcopy各種問題 以前封裝好的方法只有單獨乙個表新增,呼叫了幾次方法,經常出現此 s...
批量插入資料 SqlBulkCopy類
最近要優化資料庫訪問,資料庫是sqlserver。對單條資料的插入和更新,之前的做法是先查詢資料庫是否有記錄,有就更新,沒有就插入。查了網上的資料後,別人有個好的做法是直接update,若受影響條數是0就直接插入。不知道有沒有更好的。對與操作歷史表的請求,準備做成批量插入。通過使用sqlbulkco...