public void InsertManyItems() { IEnumerable <Item> data = GetData(); using (var reader = new EnumerableDataReader <Item>(data, new string[] { "Id", "Name" })) { using (var bulkInsert = new MsAccessBulkInsert("connection string")) { bulkInsert.Insert(reader); } } }
private void DataTableBulkInsertCore(OleDbConnection cn) { DataTable expectedData = CreateDataTableDataSource(); MsAccessBulkInsert bulkInsert = new MsAccessBulkInsert(cn); bulkInsert.DestinationTableName = TableName; bulkInsert.Insert(expectedData); DataTable actualData = LoadData(cn); MsAccessBulkHelper.CompareTables(actualData, expectedData); }
private void IBulkActionDataReaderBulkInsertCore(OleDbConnection cn) { DataTable expectedData = CreateDataTableDataSource(); DataTable actualData = null; using (IBulkActionDataReader reader = CreateIDataReaderDataSource()) { MsAccessBulkInsert bulkInsert = new MsAccessBulkInsert(cn); bulkInsert.DestinationTableName = TableName; bulkInsert.Insert(reader); actualData = LoadData(cn); } MsAccessBulkHelper.CompareTables(actualData, expectedData); }
public async Task BulkInsertDataFromDataTableIntoMdbAsynchronously() { Helpers.SkipTestIfJetProviderNotAvailable(); using (var helper = CreateHelper(ProviderType.Jet, MdbFileName)) { DataTable expectedData = CreateDataTableDataSource(); MsAccessBulkInsert bulkInsert = new MsAccessBulkInsert(helper.Connection); bulkInsert.DestinationTableName = TableName; await bulkInsert.InsertAsync(expectedData); DataTable actualData = LoadData(helper.Connection); MsAccessBulkHelper.CompareTables(actualData, expectedData); } }
private void BulkInsertDataFromDataTableWithExplicitColumnMappings( OleDbConnection cn, string tableName, Action <MsAccessBulkInsert> mappingAction) { DataTable sourceData = CreateDataTableDataSource(); sourceData.Columns["Id"].ColumnName = "SourceId"; sourceData.Columns["ColNote"].ColumnName = "SourceColNote"; MsAccessBulkInsert bulkInsert = new MsAccessBulkInsert(cn); bulkInsert.DestinationTableName = tableName; mappingAction(bulkInsert); bulkInsert.Insert(sourceData); DataTable expectedData = CreateDataTableDataSource(false); DataTable actualData = LoadData(cn, tableName); MsAccessBulkHelper.CompareTables(actualData, expectedData); }
public void BulkInsertDataFromIDataReaderIntoMdbSynchronouslyWithoutDeadLock() { Helpers.SkipTestIfJetProviderNotAvailable(); AsyncContext.Run(() => { using (var helper = CreateHelper(ProviderType.Jet, MdbFileName)) { DataTable expectedData = CreateDataTableDataSource(); DataTable actualData = null; using (IDataReader reader = expectedData.CreateDataReader()) { MsAccessBulkInsert bulkInsert = new MsAccessBulkInsert(helper.Connection); bulkInsert.DestinationTableName = TableName; bulkInsert.Insert(reader); actualData = LoadData(helper.Connection); } MsAccessBulkHelper.CompareTables(actualData, expectedData); } }); }
private void TestDestinationColumnMappings(OleDbConnection cn) { DataTable dataSource = CreateDataTableDataSource(); using (MsAccessBulkInsert bulkInsert = new MsAccessBulkInsert(cn)) { bulkInsert.DestinationTableName = TableName; Action action = () => bulkInsert.Insert(dataSource); bulkInsert.ColumnMappings.Add("Id", "Id"); bulkInsert.ColumnMappings.Add("ColNote", 123); action.Should().Throw <InvalidOperationException>($"Mapping's DestinationOrdinal is invalid.") .WithMessage($"*1*{TableName}*123*"); bulkInsert.ColumnMappings.Clear(); bulkInsert.ColumnMappings.Add("Id", "Id"); bulkInsert.ColumnMappings.Add("ColNote", "ColNote"); bulkInsert.ColumnMappings.Add(2, "InvalidColumnName"); action.Should().Throw <InvalidOperationException>($"Mapping's DestinationName is invalid.") .WithMessage($"*2*{TableName}*InvalidColumnName*"); bulkInsert.ColumnMappings.Clear(); bulkInsert.ColumnMappings.Add("Id", null); action.Should().Throw <InvalidOperationException>($"Mapping's DestinationName is null.") .WithMessage("*0*"); bulkInsert.ColumnMappings.Clear(); bulkInsert.ColumnMappings.Add("Id", string.Empty); action.Should().Throw <InvalidOperationException>($"Mapping's DestinationName is empty string.") .WithMessage("*0*"); bulkInsert.ColumnMappings.Clear(); bulkInsert.ColumnMappings.Add("Id", " \t \r\n"); action.Should().Throw <InvalidOperationException>($"Mapping's DestinationName is whitespace string.") .WithMessage("*0*"); } }
public void ThrowInvalidOperationExceptionWhenSourceColumnMappingIsInvalid() { using (var connection = new OleDbConnection()) using (var bulkInsert = new MsAccessBulkInsert(connection)) { DataTable dataSource = CreateDataTableDataSource(); Action action = () => bulkInsert.Insert(dataSource); bulkInsert.ColumnMappings.Add("Id", "Id"); bulkInsert.ColumnMappings.Add(123, "DestinationName"); action.Should().Throw <InvalidOperationException>($"Mapping's SourceOrdinal is invalid.") .WithMessage("*1*123*"); bulkInsert.ColumnMappings.Clear(); bulkInsert.ColumnMappings.Add("Id", "Id"); bulkInsert.ColumnMappings.Add("ColNote", "ColNote"); bulkInsert.ColumnMappings.Add("InvalidColumnName", 2); action.Should().Throw <InvalidOperationException>($"Mapping's SourceName is invalid.") .WithMessage("*2*InvalidColumnName*"); bulkInsert.ColumnMappings.Clear(); bulkInsert.ColumnMappings.Add(null, "Id"); action.Should().Throw <InvalidOperationException>($"Mapping's SourceName is null.") .WithMessage("*0*"); bulkInsert.ColumnMappings.Clear(); bulkInsert.ColumnMappings.Add(string.Empty, "Id"); action.Should().Throw <InvalidOperationException>($"Mapping's SourceName is empty string.") .WithMessage("*0*"); bulkInsert.ColumnMappings.Clear(); bulkInsert.ColumnMappings.Add(" \t \r\n", "Id"); action.Should().Throw <InvalidOperationException>($"Mapping's SourceName is whitespace string.") .WithMessage("*0*"); } }