zoukankan      html  css  js  c++  java
  • c# 向数据库插数据超过1000条

    今天想着如何大批量插入数据到数据库中  最开始的想法是使用insert循环插入 但每次都要创建数据库连接 这是非常消耗时间和消耗资源的事。后在网上看到了说使用SqlBulkCopy ,就看了看文档和别人的列子 感觉理解到了一点大概的使用方法  就打算记录下来 方便自己以后使用

    [csharp] view plain copy
     
    1. <code class="language-csharp">using System;  
    2. using System.Collections.Generic;  
    3. using System.Data;  
    4. using System.Data.SqlClient;  
    5. using System.Linq;  
    6. using System.Text;  
    7. using System.Threading.Tasks;  
    8.   
    9. namespace 测试  
    10. {  
    11.     class Program  
    12.     {  
    13.         static void Main(string[] args)  
    14.         {  
    15.             //创建一个DataTable对象  
    16.             DataTable dt = new DataTable();  
    17.             dt.Columns.Add("name",typeof(string));  
    18.             //给dt内存表插入数据  
    19.             for (int i = 0; i < 1000000; i++)  
    20.             {  
    21.                 dt.Rows.Add("测试" + i);  
    22.             }  
    23.             System.Diagnostics.Stopwatch st = new System.Diagnostics.Stopwatch();  
    24.             st.Start();  
    25.             using (SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=1316123;database=Temp"))  
    26.             {  
    27.   
    28.                 conn.Open();  
    29.                 using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn))  
    30.                 {  
    31.                     try  
    32.                     {  
    33.                         //插入到数据库的目标表 TbA:表名  
    34.                         bulkCopy.DestinationTableName = "[dbo].[temptable]";  
    35.                         //内存表的字段 对应数据库表的字段   
    36.                         bulkCopy.ColumnMappings.Add("name", "TempData");  
    37.                         bulkCopy.WriteToServer(dt);  
    38.                     }  
    39.                     catch (Exception ex)  
    40.                     {  
    41.                         Console.WriteLine(ex);  
    42.                     }  
    43.                 }  
    44.             }  
    45.             st.Stop();  
    46.             Console.WriteLine("成功!测试时间为:"+st.ElapsedMilliseconds);  
    47.             Console.ReadKey();  
    48.         }  
    49.     }  
    50. }  
    51. </code>  
  • 相关阅读:
    第二章、开发环境部署
    第一章、数据分析介绍
    爬虫之Beautiful Soup
    爬虫之selenium
    使用Python连接Mongodb,对数据库进行操作
    Python练习实例002
    Python练习实例001
    Python入门练手100例
    Python
    剑指Offer-003:从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/zhang-wenbin/p/9412312.html
Copyright © 2011-2022 走看看