Hi, Everybody!...
I am encountering the following error:
System.InvalidOperationException: The given ColumnMapping does not match up with any column in the source or destination.
at System.Data.SqlClient.SqlBulkCopy.AnalyzeTargetAndCreateUpdateBulkCommand(BulkCopySimpleResultSet internalResults)
at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestContinuedAsync(BulkCopySimpleResultSet internalResults, CancellationToken cts, TaskCompletionSource`1 source)
at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestAsync(CancellationToken cts, TaskCompletionSource`1 source)
at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalAsync(CancellationToken ctoken)
at System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServerAsync(Int32 columnCount, CancellationToken ctoken)
at System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable table, DataRowState rowState)...
The exception is thrown upon executing sqlBulkCopy.WriteToServer(dataTable). Please see the following code:
using (var sqlConnection = new SqlConnection(connectionString))
{
sqlConnection.Open();
using (var sqlBulkCopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.KeepIdentity))
{
sqlBulkCopy.DestinationTableName = dataTable.TableName;
foreach (DataColumn column in dataTable.Columns)
sqlBulkCopy.ColumnMappings.Add(column.ColumnName, column.ColumnName);
//var i = 0;
//foreach (DataColumn column in dataTable.Columns)
//{
// SqlBulkCopyColumnMapping columnMapping = sqlBulkCopy.ColumnMappings[i++];
// Console.WriteLine("{0}\t{1}\t{2}", column.ColumnName, column.ColumnName == columnMapping.SourceColumn, column.ColumnName == columnMapping.DestinationColumn);
//}
sqlBulkCopy.WriteToServer(dataTable);
}
}
The commented debug code produces the following output:

I have spent HOURS on this. What am I missing? What am I doing wrong?