public void BulkInsert(IDataReader data, IColumnMappingCollection columnMapping, string tableName)
        {
            string LineTerminator  = Environment.NewLine;
            string FieldTerminator = ";";

            string       tmpFile = Guid.NewGuid().ToString();
            StreamWriter sw      = new StreamWriter(tmpFile);

            while (data.Read())
            {
                for (int i = 0; i < data.FieldCount; i++)
                {
                    var o = data.GetValue(i);
                    sw.Write((i > 0 ? FieldTerminator : string.Empty) + o.ToString());
                }
                sw.Write(LineTerminator);
            }

            sw.Flush();
            sw.Close();

            MySqlBulkLoader bulkCopy = new MySqlBulkLoader(MySqlConnection);

            bulkCopy.Timeout         = 0;
            bulkCopy.TableName       = tableName;
            bulkCopy.FileName        = tmpFile;
            bulkCopy.Local           = true;
            bulkCopy.FieldTerminator = FieldTerminator;
            bulkCopy.LineTerminator  = LineTerminator;

            //    if (columnMapping != null) foreach (IColumnMapping colMap in columnMapping)
            //            bulkCopy.Add(colMap.SourceColumn, colMap.DataSetColumn);
            bulkCopy.Load();
            File.Delete(tmpFile);
        }
Exemple #2
0
 public void BulkInsert(IDataReader data, IColumnMappingCollection columnMapping, string tableName)
 {
     using (var conn = DbConnectionManager.Clone()) {
         conn.Open();
         QueryStart(LogType.Bulk);
         conn.BulkInsert(data, columnMapping, tableName);
         RowsAffected = data.RecordsAffected;
         QueryFinish(LogType.Bulk);
     }
 }
 public override void BulkInsert(IDataReader data, IColumnMappingCollection columnMapping, string tableName)
 {
     using (SqlBulkCopy bulkCopy = new SqlBulkCopy(DbConnection, SqlBulkCopyOptions.TableLock, null)) {
         bulkCopy.BulkCopyTimeout      = 0;
         bulkCopy.DestinationTableName = tableName;
         foreach (IColumnMapping colMap in columnMapping)
         {
             bulkCopy.ColumnMappings.Add(colMap.SourceColumn, colMap.DataSetColumn);
         }
         bulkCopy.WriteToServer(data);
     }
 }
Exemple #4
0
 public void BulkInsert(IDataReader data, IColumnMappingCollection columnMapping, string tableName)
 => SqlConnectionManager.BulkInsert(data, columnMapping, tableName);
Exemple #5
0
 public override void BulkInsert(IDataReader data, IColumnMappingCollection columnMapping, string tableName)
 {
     throw new NotImplementedException();
 }
 public abstract void BulkInsert(IDataReader data, IColumnMappingCollection columnMapping, string tableName);
 internal static Exception ColumnsIndexInt32(int index, IColumnMappingCollection collection)
 {
     return(CollectionIndexInt32(index, collection.GetType(), collection.Count));
 }
 internal static Exception ColumnsIndexInt32(int index, IColumnMappingCollection collection)
 {
     return CollectionIndexInt32(index, collection.GetType(), collection.Count);
 }
Exemple #9
0
 public static void BulkInsert(string name, IDataReader data, IColumnMappingCollection columnMapping, string tableName) =>
 new XmlaTask(name).BulkInsert(data, columnMapping, tableName);