private void button1_Click(object sender, EventArgs e)
{
//1.0 构建一个内存表一定要和Users表的结构保持一致,除了自增的主键外
DataTable tb = new DataTable();
//2.0 如何向tb中加入一个名词为UName的字符串类型的字段
tb.Columns.Add("UName1", typeof(string));

//3.0 向tb中插入1W条数据
DataRow dr;
System.Diagnostics.Stopwatch st = new System.Diagnostics.Stopwatch();
st.Start();
for (int i = 1; i <= 100 * 100; i++)
{
//根据内存表的结构创建一个行对象
dr = tb.NewRow();
dr["UName1"] = "测试" + i;
//将行对象加入到内存表中
tb.Rows.Add(dr);
}

st.Stop();
MessageBox.Show("1W条数据构成耗时:" + st.ElapsedMilliseconds + "毫秒");

string connString = "server=.;database=userinfo18;uid=sa;pwd=master;";

st.Start(); //开始计时
using (System.Data.SqlClient.SqlBulkCopy copy = new System.Data.SqlClient.SqlBulkCopy(connString))
{
//3.0 告诉copy当前tb中的数据是插入到Users表中
copy.DestinationTableName = "Users";

//4.0 告诉copy对象,将tb中的UName列的值插入到Users表的Uname中
copy.ColumnMappings.Add("UName1", "UName");

//5.0 批量插入
copy.WriteToServer(tb);
}
//结束计时
st.Stop();

//时间间隔打印
MessageBox.Show("1W条数据成功插入,耗时:" + st.ElapsedMilliseconds + "毫秒");
}

使用SqlBulkCopy 批量操作大量数据的更多相关文章

  1. sql 中的Bulk和C# 中的SqlBulkCopy批量插入数据 ( 回顾 and 粗谈 )

    通常,我们会对于一个文本文件数据导入到数据库中,不多说,上代码. 首先,表结构如下.   其次,在我当前D盘中有个文本文件名为2.txt的文件. 在数据库中,可以这样通过一句代码插入. Bulk in ...

  2. SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法

    原文:SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法 在new SqlBulkCopy对象的时候,设置一下SqlBulkCopyOptions选项即可,按位或运算 SqlBulkC ...

  3. SqlBulkCopy实现大容量数据快速插入数据库中

    一般情况下,我们手写sqlhelper类,在此类中定义一个数据插入到数据库的一个方法.将数据库连接密封在using()的语句中.using显示了Idispose接口.可以及时释放数据库连接资源.代码如 ...

  4. C#中的SqlBulkCopy批量插入数据

    在C#中,我们可以使用sqlBulkCopy去批量插入数据,其他批量插入方法不在讨论. 1 /// <summary> 2 /// SqlBulkCopy批量插入数据 3 /// < ...

  5. 用SqlBulkCopy批量安插数据时提示来自数据源的 String 类型的给定值不能转换为指定目标列的类型 int

    dr["description"] = ds.Tables[0].Rows[i]["组织描述"].ToString();                dr[& ...

  6. SqlBulkCopy 批量复制数据到数据表

    使用 SqlBulkCopy 类只能向 SQL Server 表写入数据.但是,数据源不限于 SQL Server:可以使用任何数据源,只要数据可加载到 DataTable 实例或可使用 IDataR ...

  7. (转)SqlBulkCopy批量复制数据

    在.Net1.1中无论是对于批量插入整个DataTable中的所有数据到数据库中,还是进行不同数据源之间的迁移,都不是很方便.而 在.Net2.0中,SQLClient命名空间下增加了几个新类帮助我们 ...

  8. SqlBulkCopy块拷贝数据时,不履行触发器和束缚 解决办法

    在new SqlBulkCopy时,设置SqlBulkCopyOptions属性即可 SqlBulkCopy bulkCopy = new SqlBulkCopy(ConStr,SqlBulkCopy ...

  9. 使用SqlBulkCopy批量插入数据

    static void Main(string[] args) { //定义与目标表结构相同的DataTable DataTable dataTable = new DataTable(); data ...

随机推荐

  1. 04-A的LU分解

    一.矩阵$AB$的逆 $(AB)^{-1}=B^{-1}A^{-1}$,顺序正好相反 二.$A=LU$ 如矩阵: $\left[\begin{array}{ll}{2} & {1} \\ {8 ...

  2. 一、ASP.NET Iframework_SignalR永久连接类(v2)

    一.新建项目,选MVC项目默认 添加mvc文件夹和核心引用 二.添加SignaIR包 SignalR的准备:NuGet包管理器搜索:工具——>库程序包管理器——>Microsoft.Asp ...

  3. 用户在浏览器输入URL或者跳转到一个URL后发生了什么

    一.从URL到页面渲染的整个过程1)处理用户输入2)开始导航3)读取响应4)查找渲染进程5)确认导航6)渲染页面 二.每一步做了哪些事情 1)处理用户的输入 浏览器的UI 线程处理用户的输入,判断是跳 ...

  4. Linux硬盘分区和软硬链接

    磁盘分区:先在虚拟机设置里添加一个新硬盘 查看现在电脑上有几个硬盘:ls /dev/硬盘名 分区命令:fdisk  /dev/硬盘名 进入之后,可以输入 m 查看命令的具体是使用 新建分区:n→p(选 ...

  5. 2014百度之星初赛第二场hdu 4831 Scenic Popularity

    Scenic Popularity Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  6. LeetCode--008--字符串转换整数 (atoi)(python)

    示例 1: 输入: "42"输出: 42示例 2: 输入: " -42"输出: -42解释: 第一个非空白字符为 '-', 它是一个负号.  我们尽可能将负号与 ...

  7. Day_03-函数和模块的使用

    使用函数求阶乘 使用while循环的代码: m = float(input('m = ')) n = float(input('n = ')) mn = m - n fm = 1 while m != ...

  8. 三、angular7登录请求和路由带参传递

    在 app.module.ts 中引入 HttpClientModule 并注入 import {HttpClientModule} from '@angular/common/http'; impo ...

  9. IDEA插件之自动查找bug工具

    打开idea 插件搜索界面 输入 FindBugs-IDEA,安装完成后重启,选中要查找的包,右键找到对应的 FindBugs就可以开始进行自动扫描了

  10. js刷新当前页面的5种方式

    1. reload reload 方法,该方法强迫浏览器刷新当前页面.语法:location.reload([bForceGet])   参数: bForceGet, 可选参数, 默认为 false, ...