中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用ADO.NET數據庫

發布時間:2021-11-03 14:43:52 來源:億速云 閱讀:114 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關如何使用ADO.NET數據庫,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

以往訪問 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)設置。

但若要通過自行編寫的程序完成批次裝載,只能以 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對象

下面是個示例:

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

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

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

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

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

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

關于“如何使用ADO.NET數據庫”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北安市| 客服| 徐汇区| 云阳县| 亳州市| 沁水县| 紫阳县| 宝山区| 嘉黎县| 遂昌县| 盐津县| 杭锦后旗| 红原县| 许昌市| 麻阳| 宜宾县| 榆林市| 汉阴县| 西贡区| 玛纳斯县| 北票市| 太原市| 南宫市| 长治县| 瓦房店市| 扎兰屯市| 邯郸市| 和硕县| 惠东县| 汉川市| 神池县| 城口县| 滁州市| 女性| 桃江县| 平和县| 琼中| 治县。| 右玉县| 辉县市| 隆回县|