Class MsAccessBulkUpdate
Class for fast bulk data update for Microsoft Access.
Inheritance
System.Object
Kros.Data.BulkActions.BulkUpdateBase
MsAccessBulkUpdate
Implements
Kros.Data.BulkActions.IBulkUpdate
Inherited Members
Kros.Data.BulkActions.BulkUpdateBase.PrefixTempTable
Kros.Data.BulkActions.BulkUpdateBase._connection
Kros.Data.BulkActions.BulkUpdateBase._disposeOfConnection
Kros.Data.BulkActions.BulkUpdateBase.Update(Kros.Data.BulkActions.IBulkActionDataReader)
Kros.Data.BulkActions.BulkUpdateBase.UpdateAsync(Kros.Data.BulkActions.IBulkActionDataReader)
Kros.Data.BulkActions.BulkUpdateBase.Update(System.Data.IDataReader)
Kros.Data.BulkActions.BulkUpdateBase.UpdateAsync(System.Data.IDataReader)
Kros.Data.BulkActions.BulkUpdateBase.Update(System.Data.DataTable)
Kros.Data.BulkActions.BulkUpdateBase.UpdateAsync(System.Data.DataTable)
Kros.Data.BulkActions.BulkUpdateBase.DoneTempTableAsync(System.String, System.Boolean)
Kros.Data.BulkActions.BulkUpdateBase.GetColumnNamesForTempTable(System.Data.IDataReader)
Kros.Data.BulkActions.BulkUpdateBase.GetUpdateColumnNames(System.Data.IDataReader, System.String)
Kros.Data.BulkActions.BulkUpdateBase.Dispose()
Kros.Data.BulkActions.BulkUpdateBase.ExternalTransaction
Kros.Data.BulkActions.BulkUpdateBase.DestinationTableName
Kros.Data.BulkActions.BulkUpdateBase.TempTableAction
Kros.Data.BulkActions.BulkUpdateBase.PrimaryKeyColumn
Namespace: Kros.Data.BulkActions.MsAccess
Assembly: Kros.Utils.MsAccess.dll
Syntax
public class MsAccessBulkUpdate : BulkUpdateBase, IBulkUpdate, IDisposable
Remarks
The bulk update uses a temporary database.
Examples
private class BulkUpdateItem
{
public int Id { get; set; }
public string Name { get; set; }
}
public void UpdateManyItems()
{
IEnumerable<BulkUpdateItem> data = GetItems();
using (var reader = new EnumerableDataReader<BulkUpdateItem>(data, new string[] { "Id", "Name" }))
{
using (var bulkUpdate = new MsAccessBulkUpdate("connection string"))
{
bulkUpdate.Update(reader);
}
}
}
Constructors
MsAccessBulkUpdate(OleDbConnection)
Creates new instance of MsAccessBulkUpdate for database connection
.
Declaration
public MsAccessBulkUpdate(OleDbConnection connection)
Parameters
Type | Name | Description |
---|---|---|
System.Data.OleDb.OleDbConnection | connection | Database connection where the data will be inserted. The connection mus be opened. |
MsAccessBulkUpdate(OleDbConnection, OleDbTransaction)
Creates new instance of MsAccessBulkUpdate for database connection
and with transaction externalTransaction
.
Declaration
public MsAccessBulkUpdate(OleDbConnection connection, OleDbTransaction externalTransaction)
Parameters
Type | Name | Description |
---|---|---|
System.Data.OleDb.OleDbConnection | connection | Database connection where the data will be inserted. The connection mus be opened.
If there already is running transaction in this connection, it must be specified in
|
System.Data.OleDb.OleDbTransaction | externalTransaction | Transaction in which the bulk insert will be performed. |
MsAccessBulkUpdate(String)
Creates new instance of MsAccessBulkUpdate for database connectionString
.
Declaration
public MsAccessBulkUpdate(string connectionString)
Parameters
Type | Name | Description |
---|---|---|
System.String | connectionString | Connection string to the database where the data will be inserted. |
Methods
CreateBulkInsert()
Declaration
protected override IBulkInsert CreateBulkInsert()
Returns
Type | Description |
---|---|
Kros.Data.BulkActions.IBulkInsert |
Overrides
Kros.Data.BulkActions.BulkUpdateBase.CreateBulkInsert()
CreateCommandForPrimaryKey()
Declaration
protected override IDbCommand CreateCommandForPrimaryKey()
Returns
Type | Description |
---|---|
System.Data.IDbCommand |
Overrides
Kros.Data.BulkActions.BulkUpdateBase.CreateCommandForPrimaryKey()
CreateTempTable(IDataReader, String)
Declaration
protected override void CreateTempTable(IDataReader reader, string tempTableName)
Parameters
Type | Name | Description |
---|---|---|
System.Data.IDataReader | reader | |
System.String | tempTableName |
Overrides
Kros.Data.BulkActions.BulkUpdateBase.CreateTempTable(System.Data.IDataReader, System.String)
Dispose(Boolean)
Declaration
protected override void Dispose(bool disposing)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | disposing |
Overrides
Kros.Data.BulkActions.BulkUpdateBase.Dispose(System.Boolean)
GetTempTableName()
Declaration
protected override string GetTempTableName()
Returns
Type | Description |
---|---|
System.String |
Overrides
Kros.Data.BulkActions.BulkUpdateBase.GetTempTableName()
GetTempTableNameForBulkInsert(String)
Declaration
protected override string GetTempTableNameForBulkInsert(string name)
Parameters
Type | Name | Description |
---|---|---|
System.String | name |
Returns
Type | Description |
---|---|
System.String |
Overrides
Kros.Data.BulkActions.BulkUpdateBase.GetTempTableNameForBulkInsert(System.String)
InvokeAction(String)
Declaration
protected override void InvokeAction(string tempTableName)
Parameters
Type | Name | Description |
---|---|---|
System.String | tempTableName |
Overrides
Kros.Data.BulkActions.BulkUpdateBase.InvokeAction(System.String)
UpdateDestinationTableAsync(IDataReader, String, Boolean)
Declaration
protected override Task UpdateDestinationTableAsync(IDataReader reader, string tempTableName, bool useAsync)
Parameters
Type | Name | Description |
---|---|---|
System.Data.IDataReader | reader | |
System.String | tempTableName | |
System.Boolean | useAsync |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task |
Overrides
Kros.Data.BulkActions.BulkUpdateBase.UpdateDestinationTableAsync(System.Data.IDataReader, System.String, System.Boolean)
Implements
Kros.Data.BulkActions.IBulkUpdate