成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

強烈推薦使用ADO.NET數據庫特性

開發 后端
這里就ADO.NET數據庫利用SqlBulkCopy類快速寫入大批量數據,針對SQL Server的優化,可以寫入DataRow數據,文章有詳細的介紹,希望看過本文會有技術上的提高。

隨著ADO.NET2.0的快速發展,它的功能也有了很大的提高,對于我們運用它的人更方便一些,下面我們就使用SqlBulkCopy批量裝載數據(僅限SqlClient)一起來分析研究一下吧。以往訪問 SQL Server 2000 時,若有大量的數據記錄需要添加到數據庫內,例如從主機系統或是 NCR Teradata、Oracle等數據庫系統下載大量數據記錄,我們想要將它們快速添加到 SQL Server 2000中,可以有的選擇是調用 T-SQL 的 Bulk Insert 語法、通過Linked Server 執行 SELECT INTO 語法或是執行 bcp.exe 工具程序,以及通過 DTS 的 Bulk Insert Task 或啟動Transform Data Task 的快速裝載(Use Fast Load)設置。

#T#但若要通過自行編寫的程序完成批次裝載,只能以 C/C++ 調用 OLEDB 或 ODBC 的 Bulk API,無法通過 ADO.NET 或 ADO 等對象來執行。ADO.NET 2.0 的 SqlClient 提供了一個新的類稱為SqlBulkCopy,它讓 DataSet 內大量的數據或是 DataReader通過數據流(Stream)直接讀取大量的記錄,可以快速將這些記錄添加到目的ADO.NET數據庫的數據表中。但要注意的是它并非如我們一般用的 bcp.exe工具程序,可以從某個符號分隔文件讀取大量數據,選擇性地搭配格式文件(Format File)將記錄裝載到ADO.NET數據庫中,或是將數據庫內的數據導出成為一個文件。但由于DataSet 能集成 XML 數據,因此依然可以采用 SqlBulkCopy 類型,輕松地通過 DataSet 將 XML 文件數據大量轉入到ADO.NET數據庫。

可以利用SqlBulkCopy類快速寫入大批量數據,針對SQL Server的優化,可以寫入DataRow數據,DataTable,DataReader,并且可以映射不同的數據列名
◆WriteToServer(DataTable)寫入數據表
◆WriteToServer(DataRow[])批次寫入數據行
◆WriteToServer(DataTable ,DataRowState)按行狀態寫入數據庫表
◆WriteToServer(IDataReader)寫入DataReader對象

下面是個示例:

  1. using (SqlConnection sqlcon = new SqlConnection("Data Source=192.168.80.242;  
  2. user id=oa;  
  3. password=oapassword;  
  4. initial catalog=test")) { sqlcon.Open();   
  5. using (SqlBulkCopy bcp = new SqlBulkCopy(sqlcon)) { bcp.BulkCopyTimeout = 3000;  
  6. bcp.DestinationTableName = "dbo.Test01";   
  7. bcp.ColumnMappings.Add("id", "id"); bcp.ColumnMappings.Add("name1", "name1");  
  8. bcp.ColumnMappings.Add("name2", "name2");   
  9. bcp.ColumnMappings.Add("name3", "name3");  
  10. //映射到不同名列   
  11. bcp.ColumnMappings.Add("changedname4", "name4");  
  12. bcp.WriteToServer(dt); sqlcon.Close(); } } 

但是SqlBulkCopy使用時要注意以下幾點:

1 確認確實需要大容量更新在執行此操作,(幾十行的數據請盡量使用別的渠道把).

2確認數據一致性,與檢查機制,以免遇到主鍵沖突,數據不符格式等意外。

3 SqlBulkCopy操作可能會導致對目標表元數據的更改(例如,禁用約束檢查時)。如果出現這種情況,訪問大容量插入表的并發快照隔離事務將失敗。

4 SqlBulkCopy將向數據庫下大容量更新鎖,請注意并發性,以免其他連接因長時間等待而超時。

責任編輯:田樹 來源: 博客
相關推薦

2009-11-11 15:09:35

ADO.NET數據集

2009-12-31 09:18:23

ADO.NET對象模型

2009-12-24 09:34:47

調用ADO.NET

2009-11-12 10:06:01

ADO.NET讀取數據

2009-12-28 15:11:36

ADO.NET專家

2009-12-25 17:05:32

ADO.NET數據庫

2009-12-18 17:06:37

ADO.NET 數據庫

2009-12-23 17:59:46

ADO.NET數據庫

2011-10-09 13:38:14

數據庫

2009-11-04 13:12:33

VB.NET繼承類

2009-11-04 14:17:34

ADO.NET 2.0

2009-03-12 11:26:35

Data ServicADO.NET.NET

2009-12-21 13:59:03

ADO.NET特性

2009-11-04 13:20:28

ADO.NET Dat

2009-11-04 15:44:39

ADO.NET Sql

2009-12-31 11:07:33

連接ADO.NET

2009-12-22 11:24:37

ADO.NET數據庫

2009-12-21 16:07:52

ADO.NET數據庫

2009-12-22 14:21:47

創建ADO.Net

2009-11-12 13:26:56

使用ADO.NET參數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人亚洲 | 久久综合九色综合欧美狠狠 | 一区中文字幕 | 亚洲精品久久久久久一区二区 | 亚洲一区二区在线视频 | 成人在线播放 | 免费一区| 在线免费观看日本 | 久久综合伊人 | 亚洲一区在线观看视频 | 黄色片免费在线观看 | 欧美日韩看片 | 日本 欧美 国产 | 美女黄网 | 亚欧洲精品在线视频免费观看 | www亚洲免费国内精品 | 色综合99 | 精品影院| 免费精品视频 | 久久精品国产久精国产 | 日韩av.com| 91人人澡人人爽 | 国产成人精品一区二区三区 | 在线播放中文 | 狠狠涩 | 国产精品大片 | 久久久久久久综合 | 国产午夜精品一区二区三区在线观看 | 久久一区二区av | 热久色 | 欧美一区视频在线 | 日韩视频一区二区 | 成人精品久久 | 一区二区福利视频 | 日韩欧美视频在线 | 久久久久成人精品免费播放动漫 | 在线精品一区二区三区 | 亚洲交性| 午夜精品久久久久久久99黑人 | 在线成人| 日韩av免费在线电影 |