![](/img/trans.png)
[英]Insert new records and update existing records using SqlBulkCopy in c#
[英]Using SqlBulkCopy with datatable to insert excell records
我正在尝试使用SqlBulkCopy将数据表插入到数据库中
我有这个代码
string mydemo="my demo record";
DataTable prodSalesData = new DataTable("ProductSalesData");
// Create Column 1: SaleDate
DataColumn dateColumn = new DataColumn();
dateColumn.DataType = Type.GetType("System.String");
dateColumn.ColumnName = "SaleDate";
prodSalesData.Columns.Add(dateColumn);
DataRow dailyProductSalesRow = prodSalesData.NewRow();
dailyProductSalesRow["SaleDate"] = mydemo;
// Create DbDataReader to Data Worksheet
using (OleDbDataReader dr1 = command1.ExecuteReader())
{
// Bulk Copy to SQL Server
using (SqlBulkCopy bulkCopy1 = new SqlBulkCopy(con))
{
bulkCopy1.DestinationTableName = "activity1";
bulkCopy1.ColumnMappings.Add(0, "id");
bulkCopy1.ColumnMappings.Add(1,"name");
bulkCopy1.ColumnMappings.Add(2, "activity1first");
bulkCopy1.ColumnMappings.Add(3, "activity1second");
bulkCopy1.ColumnMappings.Add(4, prodSalesData.Columns.ToString());
bulkCopy1.WriteToServer(dr1);
}
}
在这里fors 4 recods来自xcell文件,但是我想在同一张表中插入外部数据,我尝试了很多,但是给了我这个错误
The given ColumnMapping does not match up with any column in the source or destination.
有什么帮助吗?
谢谢
由于您正在为4个prodSalesData列(按位置)设置mappinng,但是只有一列,因此触发了错误。 ColumnMappings应该包含从源映射到目标的列,即
bulkCopy1.ColumnMappings.Add("SaleDate", prodSalesData.Columns.ToString());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.