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);
}
}