0
대상 데이터베이스에서 테이블을 만든 후 다음과 같은 오류가 발생합니다. sqlBulkCopy.WriteToServer (dtCeTask)에서 오류 가져 오기;주어진 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);
}
}