0
宛先データベースで作成されたテーブルの後に次のエラーが発生します。 sqlBulkCopy.WriteToServer(dtCeTask)でエラーを取得します。given ColumnMappingが一致しません
エラー:指定されたColumnMappingがソースまたはデスティネーションのどの列とも一致しません。
using (SqlCeConnection conn = new SqlCeConnection(_connectionString))
{
try
{
conn.Open();
//CETASK
DataTable dtCeTask = new DataTable("TempTask");
StringBuilder sqlTask = new StringBuilder();
sqlTask.Append("select StartDate,Status,Priority,Complete, PercentComplete,TimerDuration, ItemLastModified, MatterIdentifier, MatterName, TimeEntryIdentifier, Isrecurring, Originator, createdDate, DisplayName, DisplayText ");
sqlTask.Append("from TaskOutlookItemProxy ");
using (SqlCeDataAdapter daCeTask = new SqlCeDataAdapter(sqlTask.ToString(), conn))
{ daCeTask.Fill(dtCeTask); }
using (SqlConnection sqlconnection = new SqlConnection(strConnString))
{
sqlconnection.Open();
// create table if not exists
string createTableQuery = @"Create Table TempTask1
(StartDate datetime, Status nvarchar(255), Priority nvarchar(255), Complete bit, PercentComplete int, TimerDuration int,ItemLastModified DateTime, MatterIdentifier nvarchar(255),MatterName nvarchar(255), TimeEntryIdentifier nvarchar(255), Isrecurring bit, Originator nvarchar(255), createdDate DateTime, DisplayName nvarchar(255), DisplayText nvarchar(255))";
SqlCommand command = new SqlCommand(createTableQuery, sqlconnection);
command.ExecuteNonQuery();
// Copy the DataTable to SQL Server Table using SqlBulkCopy
using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(sqlconnection))
{
sqlBulkCopy.DestinationTableName = dtCeTask.TableName;
foreach (var column in dtCeTask.Columns)
{
sqlBulkCopy.ColumnMappings.Add(column.ToString(), column.ToString());
}
sqlBulkCopy.WriteToServer(dtCeTask);
}
}
}
catch (Exception ex)
{
throw (ex);
}
}