SqlBulkCopy批量添加DataTable自增列的问题

在将datable bulkcpy到数据库的时候,若没有指定第一列自增ID的话就会将下一列当成自增ID

其实用不着加bulk.ColumnMappings.Add("Name", "LastName");这样映射,只要把自增ID的column加到datatable即可

DataTable _DT = new DataTable();
_DT.Columns.Add("ID", Type.GetType("System.Int32"));
_DT.Columns.Add("Name", Type.GetType("System.String"));

DataRow dataRow = _DT.NewRow();
dataRow[0] = 0;
dataRow[1] = "姓名";

_DT.Rows.Add(dataRow);

这样自增ID就会自增了

时间: 2024-10-07 03:35:49

SqlBulkCopy批量添加DataTable自增列的问题的相关文章

SqlBulkCopy导入数据(自增列保留原值)

1 //自增列重新生成:SqlBulkCopy bc = new SqlBulkCopy(conn) 2 //自增列保留原值:SqlBulkCopy bc = new SqlBulkCopy(conn,SqlBulkCopyOptions.KeepIdentity) 3 using(SqlBulkCopy sbc = new SqlBulkCopy(conn,SqlBulkCopyOptions.KeepIdentity)) 4 { 5 sbc.DestinationTableName = ta

SqlBulkCopy批量添加数据

var sqlconn = ConfigurationManager.ConnectionStrings["SQLConnStringRead"].ConnectionString; string sql = "select * from TicketRecord where 1=2"; //Database db = new Database(sqlconn); //var ds = db.QueryExtend(sql); DataTable ImportDT

C#使用SqlBulkCopy批量导数据

案例:将数据库数据导入到另一个库 ImportDataUtil: public class ImportDataUtil { const int PAGE_SIZE = 500; private SqlConnection _sourceConn = null; private SqlConnection _descConn = null; public ImportDataUtil(string sourceConnStr,string descConnStr) { _sourceConn =

SQL Server查询时添加一列连续的自增列

在SQL Server数据库中表信息会用到Identity关键字来设置自增列.但是当有数据被删除的话,自增列就不连续了.如果想查询出这个表的信息,并添加一列连续自增的ID,可用如下查询语句: select Row_Number() over ( order by getdate() ) as init , * from 表名

MyBaits基本操作,为什么session.commit()可以引起事物提交?ResultMap结果映射,执行添加后返回自增列的值,多条件查询,智能标签,工具类

1.为什么session.commit()可以引起事务的提交? 首先打开commit()源码,ctrl+H打开它的实现类DefaultSession,找到它的commit方法 ctrl+左键executor,进入它的接口并打开它的实现类BaseExecutor 在最底层的commit()方法里边进行了事务的提交,所以SqlSession.commit()方法可以引起事务的提交 2.ResultMap结果映射 为什么需要ResultMap? 因为DB中的Table的列名和Java对象中的属性名不一

Linq To EF (添加记录后获取添加的自增ID和叫“ID”的列不是自增列不让插入的问题)

1:添加记录后,如何获取新添加的ID的值 比如,一个实体 TestEntity   对应一个表TestEntity(ID主键自增,Name,age),使用linq to ef   添加一条记录后,如何获取新记录的ID值?如下代码: var te = new TestEntity (){ Name = "名字", Age = 21};using (EFDbContext context = new EFDbContext()){ context.TestEntity .Add(te);

使用事务和SqlBulkCopy批量插入数据

SqlBulkCopy是.NET Framework 2.0新增的类,位于命名空间System.Data.SqlClient下,主要提供把其他数据源的数据有效批量的加载到SQL Server表中的功能.类似与 Microsoft SQL Server 包中名为 bcp 的命令行应用程序.但是使用 SqlBulkCopy 类可以编写托管代码解决方案,性能上优于bcp命令行应用程序,更优于如Insert方式向SQL Server表加载大量数据.SqlBulkCopy可以应用到大批量数据的转移上,而不

.Net中批量添加数据的几种实现方法比较

在.Net中经常会遇到批量添加数据,如将Excel中的数据导入数据库,直接在DataGridView控件中添加数据再保存到数据库等等. 方法一:一条一条循环添加 通常我们的第一反应是采用for或foreach循环一条一条的添加. for (int i = 0; i < dgv.Rows.Count; i++) { string sql = "insert into ....."; SqlHelper.ExcuteNonQuery(CommandType.Text, sql, nu

ADO.NET批量添加数据到SQL Server—BulkCopy使用指南

BulkCopy位于System.Data.SqlClient命名空间,允许你使用其他源的数据有效地批量加载 SQL Server 表. 属性: BatchSize :每个批处理中的行数. 在每个批处理结束时,批处理中的行将发送到服务器. BulkCopyTimeout:超时之前可用于完成操作的秒数. ColumnMappings:返回 SqlBulkCopyColumnMapping 项的集合. 列映射定义数据源中的列和目标中的列之间的关系. DestinationTableName:服务器上