• 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>  
  • 相关阅读:
    python自定义编写有关用户登录注册程序代码
    项目经理多年的经验之谈
    Linux虚拟机克隆后,启动系统发现网卡无法启动
    mysql出现服务器异常后,重启服务器后无法开启数据库处理方法
    计算机毕业四年,我都做了什么?
    个人Blog(采用Django+uwsgi+nginx)里面包含很多技术文章
    Delphi to C# Equivalancesdelphi和C#类似的地方
    Javascript浏览器关于scrollLeft,scrollTop的兼容性
    Mozilla Firefox15怎么样才能把标签页弄到下面去,就和360的一样,Mozilla Firefox15没有取消标签置顶这个选项……
    Delphi过程函数传递参数的几种方式
  • 原文地址:https://www.cnblogs.com/zhang-wenbin/p/9412312.html
Copyright © 2020-2023  润新知