您的位置:首页 > 数据库 > SQL

SqlBulkCopy 数据库批量插入数据

2016-04-29 16:25 726 查看
/// <summary>

        /// 批量插入  注:DT的tableName为要更新的数据库表名

        /// </summary>

        /// <param name="dt"></param>

        /// <remarks></remarks>

        public void  tsSqlBulkCopy(DataTable dt)

        {

            try

            {

                using (SqlBulkCopy sqlCopy = new SqlBulkCopy(this.connection, SqlBulkCopyOptions.FireTriggers, this.transaction))

                {

                    string sql = "select * from " + dt.TableName + " where 1=-1";

                    DataTable DBTable = ExecuteDataTable(sql);

                    List<string> DBList = new List<string>();

                    for (int i = 0; i <= DBTable.Columns.Count - 1; i++)

                    {

                        DBList.Add(DBTable.Columns[i].ColumnName);
                    }

   List<string> ParList = new List<string>();

                    for (int i = 0; i <= dt.Columns.Count - 1; i++)

                    {

                        ParList.Add(dt.Columns[i].ColumnName);

                    }

                    //添加对应列

                    foreach (string item in DBList)

                    {

                        if (ParList.Contains(item))

                        {

                            sqlCopy.ColumnMappings.Add(item, item);

                        }

                    }

                    sqlCopy.DestinationTableName = dt.TableName;

                    sqlCopy.BatchSize = dt.Rows.Count;

                     sqlCopy.WriteToServer(dt);        

                }

            }

            catch (Exception ex)

            {

                throw ex;

            }

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# sql server