c#中SqlBulkCopy的使用

c#中SqlBulkCopy的使用

SqlBulkCopy 的使用实例

  • C# 代码   复制
  • 
            /// <summary>
            /// SqlBulkCopy
            /// </summary>
            /// <param name="connectionString">目标连接字符</param>
            /// <param name="TableName">目标表</param>
            /// <param name="dt">源数据</param>
            private void SqlBulkCopyByDatatable(string connectionString, string TableName, DataTable dt)
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    //生成SqlBulkCopy 实例,构造函数指定了目标数据库,使用SqlBulkCopyOptions.UseInternalTransaction是指迁移动作指定在一个Transaction当中,如果数据迁移中产生错误或异常将发生回滚。
                    using (SqlBulkCopy sqlbulkcopy =new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction))
                    {
                        try
                        {
                            sqlbulkcopy.BulkCopyTimeout = 5000;//指定操作完成的Timeout时间
                            sqlbulkcopy.DestinationTableName = TableName;
                            for (int i = 0; i < dt.Columns.Count; i++)
                            {
                                sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
                            }
                            sqlbulkcopy.WriteToServer(dt);//WriteToServer方法就是将数据源拷备到目标数据库。在使用WriteToServer方法之前必须先指定 DestinationTableName属性,也就是目标数据库的表名
                        }
                        catch (System.Exception ex)
                        {
                            throw ex;
                        }
                    }
                }
            }
    
    		
  •  

    大家可以通过程序、存储过程等方法比较三者的性能。

    标签: