我需要将数据从一个表复制到另一表。 我收到一条消息异常:
来自数据源的String类型的给定值不能为 转换为指定目标列的类型uniqueidentifier”,
因为我的列具有GUID数据类型。
我的代码...
using (SqlConnection destinationConn = new SqlConnection("Data Source = ''; Initial Catalog = ''; Persist Security Info = True; User ID = ''; Password = ''; MultipleActiveResultSets = true"))
{
using (SqlBulkCopy bc = new SqlBulkCopy(destinationConn))
{
bc.DestinationTableName = "Animal";
destinationConn.Open();
bc.ColumnMappings.Add("guid", "guid"); //UniqueIdentifier
bc.ColumnMappings.Add("Name", "Name");
bc.WriteToServer(dt); //DATA TABLE object
}
}
我该如何解决这个问题?
答案 0 :(得分:0)
我遇到了类似的问题,我解决了。
如果需要,请检查我的以下代码。
DataTable dt = new DataTable();
dt.Columns.Add("IdColumn1", typeof(Guid));
dt.Columns.Add("IdColumn2", typeof(Guid));
foreach (var item in MyCollection)
dt.Rows.Add(item.obj1, item.obj2);
using (SqlConnection con = new SqlConnection(ConnectionString))
{
con.Open();
using (var bulkCopy = new SqlBulkCopy(con))
{
bulkCopy.DestinationTableName = "TableName";
bulkCopy.ColumnMappings.Add("IdColumn1", "IdColumn1");
bulkCopy.ColumnMappings.Add("IdColumn2", "IdColumn2");
bulkCopy.WriteToServer(dt);
}
dt.Dispose();
}