DataTable批量存数SQL数据库中

 1 #region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中
 2         /// <summary>
 3         /// 使用SqlBulkCopy将DataTable中的数据批量插入数据库中
 4         /// </summary>
 5         /// <param name="strTableName">数据库中对应的表名</param>
 6         /// <param name="dtData">数据集</param>
 7         public static void SqlBulkCopyInsert(string strTableName, DataTable dtData,string connectionString)
 8         {
 9             string ConStr = connectionString;// 数据库连接字符串
10
11             try
12             {
13                 using (SqlBulkCopy sqlRevdBulkCopy = new SqlBulkCopy(ConStr))//引用SqlBulkCopy
14                 {
15                     sqlRevdBulkCopy.DestinationTableName = strTableName;//数据库中对应的表名
16                     sqlRevdBulkCopy.NotifyAfter = dtData.Rows.Count;//有几行数据
17                     sqlRevdBulkCopy.WriteToServer(dtData);//数据导入数据库
18                     sqlRevdBulkCopy.Close();//关闭连接
19                 }
20             }
21             catch (Exception ex)
22             {
23                 MessageBox.Show(ex.Message + "数据库处理行。SqlBulkCopyInsert");
24                 throw (ex);
25             }
26         }
27         #endregion

25万行数据只需要将近2秒时间。但是这个好像只是适用于SQL数据库,对于SDE是不好用的,暂时还不知为何?

时间: 2024-11-04 08:00:55

DataTable批量存数SQL数据库中的相关文章

转:SQL数据库中临时表、临时变量和WITH AS关键词创建“临时表”的区别

原文链接:https://www.cnblogs.com/zhaowei303/articles/4204805.html SQL数据库中数据处理时,有时候需要建立临时表,将查询后的结果集放到临时表中,然后在针对这个数据进行操作. 创建"临时表"(逻辑上的临时表,可能不一定是数据库的)的方法有一下几种: 1.with tempTableName as方法(05之后出现): with temptable as 其实并没有建立临时表,只是子查询部分(subquery factoring),

C#将SQL数据库中数据导入Excel中,并将Excel中反导入SQL数据库中

实际的开发中,我们会经常遇到数据的转化的需要,将Excel中的数据转入到SQL中,或将SQL在数据库表中的数据导入到Excel中.代码如下: Code using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windo

SQL数据库中的主键与外键的介绍

一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如 : 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 用户表(用户名.密码.登录级别) 其中用户名是唯一的, 用户名就是一个主键 上机记录表(卡号,学号,姓名.序列号) 上机记录表中单一一个属性无法唯一标识一条记录,学号和姓名的组合才可以唯一标识一条记录,所以 学号和姓名的属性组是一个主键 上机记录表中的序列号不是成绩表的

sql数据库中查询第几条到第几条的数据

通用方法: select top 500 * from (select top 1000 * from UserSearchDatas order by ID) a order by ID desc sql数据库中查询第几条到第几条的数据,布布扣,bubuko.com

java批量插入数据进数据库中

方式1: for循环,每一次进行一次插入数据. 方式2: jdbc的preparedStatement的batch操作 PreparedStatement.addBatch(); ...... PreparedStatement.executeBatch(); 一次最多不要超过50条:1.因为当你插入的时候 数据库已经锁定,然而如果你一次性插入太多会造成其他业务的等待.2.会造成内存的溢出 方式2的本质是:insert into table (a,b,c,d) values(av,bv,cv.d

C#中使用FileUpload上传图片到SQL数据库中以image类型存储并使用Image控件显示注意事项

当我们需要以数据流存储图片到数据库中(而不是文件路径),需要考虑很多因素,不同的环境决定了采取不同方法. 1.将图片存入数据库.首先,当我们决定使用FileUpload上传图片,需要考虑,FileUpload的功能主要是在客户端选取图片,然后使用FileUpload的SaveAs方法将选取的图片的地址保存到服务器端保存,因为我们使用的数据流存储图片,所以没有必要将图片保存到服务器端. 其次,FileUpload没有像OpenDialog的.Filter方法过滤图片的格式,即实现打开对话框,只能选

sql 数据库中只靠一个数据,查询到所在表和列名

有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,在网上搜了一下,找到一个比较好的方法,通过一个存储过程实现的.只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名. 前提是要将这个存储过程放在所查询的数据库. 注:1步骤是创建存储过程,可以在任何一个数据库中使用,2步骤是调用它来查找数据库中所有牵扯到的列以及对应的表. 只需要一个数据 真是非常方便 一.首先 点击新建查询 ,左上角选择到自己的数据库,然后把下面这段复制进去  然后运行 CREATE PROCEDURE [

Session如何保存在sql数据库中

aspnet中,session默认以inproc模式存储,也就是保存在iis进程中,这样有个优点就是效率高,但不利于为本负载均衡扩展.可以把session信息保存在SQL Server中,据说,该种方式比起inproc性能损失为10%-20%.如何实现呢,主要分两步介绍: 1.初始化SQL Server中的状态数据库 ASP.NET SQL Server 提供注册工具Aspnet_regsql.exe,用于创建供 ASP.NET 中的 SQL Server 提供程序使用的 Microsoft S

sql数据库中#tmp什么含义?

mssql数据库中可以使用临时表,临时表有本地和全局之分,其在名称.可见性上有区别.本地临时表的名称以单个#开头:它们仅对当前的用户会话session是可见的:当用户会话结束也就是断开连接时被删除.全局临时表的名称以## 打头,创建后对任何用户都是可见的,当所有引用该表的用户都从Server 断开连接时被删除.