国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

傳智播客--ADO.net--SqlBulkCopy批量插入數據(小白必知)

2019-11-14 16:19:12
字體:
來源:轉載
供稿:網友

一般情況下,我們在向數據庫中插入數據時用Insert語句,但是當數據量很大的時候,這種情況就比較緩慢了,這個時候就需要SqlBulkCopy這個類。

SqlBulkCopy本身常用的函數有這么幾個

DestinationTableName-----服務器目標表上的名稱,也就是你要向哪個表插入大量的數據,這個就設置為那個表名

ColumnMappings-----字段映射,因為是要在本地建立一個Table,然后將整個Table一次性的加入到數據庫中,因此需要將本地的Table的字段和數據庫表中的字段做好映射關系

WriteToServer-----這個就是寫入數據庫了,不需要多說

導入的數據是傳智播客免費視頻上提供的手機號碼歸屬地的信息,插入數據庫看了一下,一共有258113條數據,用時大概6秒吧。

 PRivate void btnDR_Click(object sender, RoutedEventArgs e)        {            OpenFileDialog ofd = new OpenFileDialog();            ofd.Filter = "文本文件|*.txt";            if(ofd.ShowDialog()!=true)            {                return;            }            DateTime time = DateTime.Now;//計時,看看花了多長時間                        DataTable table = new DataTable();//本地創建一個臨時表            //給臨時表添加列名            table.Columns.Add("HD");            table.Columns.Add("DQ");            table.Columns.Add("LX");            using(StreamReader streamReader=new StreamReader(ofd.FileName,Encoding.Default))//讀取文件            {                while(!streamReader.EndOfStream)                {                    string[] stringStream = streamReader.ReadLine().Split('/t');//按行讀取,通過/t進行分割,得到數組                    string HD = stringStream[0].Trim('"');                    string DQ = stringStream[1].Trim('"');                    string LX = stringStream[2].Trim('"');                    //將數據插入到本地創建的臨時表里                    DataRow row = table.NewRow();                    row["HD"] = HD;                    row["DQ"] = DQ;                    row["LX"] = LX;                    table.Rows.Add(row);                }            }            //這部分就是從本地導入到數據庫中            using(SqlConnection conn=new SqlConnection("Data Source=.;Initial Catalog=imageprocess;Integrated Security=True"))            {                conn.Open();                using(SqlBulkCopy bulkCopy=new SqlBulkCopy(conn))                {                    bulkCopy.DestinationTableName = "T_HM";                    bulkCopy.ColumnMappings.Add("HD", "HD");//前面的參數是本地的臨時Table列名,后面的參數是數據庫的列名。兩個名稱不需要相同,我寫相同,是為了方便                    bulkCopy.ColumnMappings.Add("DQ", "DQ");                    bulkCopy.ColumnMappings.Add("LX", "LX");                    bulkCopy.WriteToServer(table);                }            }            TimeSpan TS = DateTime.Now - time;            MessageBox.Show(TS.ToString());                   }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 静宁县| 竹山县| 永仁县| 电白县| 小金县| 民县| 霞浦县| 楚雄市| 泉州市| 江川县| 汉寿县| 两当县| 元阳县| 云南省| 漾濞| 琼海市| 信阳市| 当阳市| 确山县| 吉首市| 茂名市| 阳高县| 霸州市| 兴义市| 澄江县| 白水县| 伊吾县| 外汇| 高清| 绥化市| 枣强县| 连云港市| 天峨县| 祁连县| 清苑县| 濉溪县| 五河县| 孝感市| 开江县| 庄河市| 天等县|