c# 数据库批量插入数据SqlBulkCopy 示例

 /// <summary>
        /// 批量插入数据
        /// </summary>
        public static void SqlBulkInsert(DataTable dt, string connStr)
        {
            try
            {
                using (var conn = new SqlConnection(connStr))
                {
                    try
                    {
                        conn.Open();
                        using (var bulkcopy = new SqlBulkCopy(connStr,
                            SqlBulkCopyOptions.UseInternalTransaction))
                        {
                            //批量插入跟踪日志至对应的日志表
                            bulkcopy.DestinationTableName = dt.TableName;
                            for (int i = 0; i < dt.Columns.Count; i++)
                            {
                                bulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
                            }
                            bulkcopy.WriteToServer(dt);
                        }
                    }
                    finally
                    {
                        if (conn.State != ConnectionState.Closed)
                        {
                            conn.Close();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                other.WriteFile("SqlBulkCopy插入数据异常:" + ex);
            }
        }

  注意:DataTable需要设置tableName,需要跟要插入的表名字一致

原文地址:https://www.cnblogs.com/password1/p/6138422.html