您的位置:首页 > 编程学习 > C#

c#中SqlBulkCopy的使用

更多 2015/9/11 来源:C#学习浏览量:1334
学习标签: c#
本文导读:c#中SQLBulkCopy,用于数据库之间大批量的数据传递,其速度,比传统的Insert方法快很多倍例,如将Excel数据,大批量的导入到数据库中。下面通过实例说明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;
                    }
                }
            }
        }

 

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

 

收藏
19
很赞
309