DataTable批量上传
原创2024年11月6日小于 1 分钟
.NET开发离不开DataTable,有时需要对大量数据的DataTable进行上传,这时使用SqlBulkCopy来实现
bool DataSumbit(DataTable sourceDt, string destinationString, string destinationTableName,bool bMapping,out string errMsg)
{
errMsg=string.Empty;
try
{
using (SqlConnection destinationConnection = new SqlConnection(destinationString))
{
destinationConnection.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destinationString, SqlBulkCopyOptions.UseInternalTransaction | SqlBulkCopyOptions.CheckConstraints))
{
bulkCopy.DestinationTableName = destinationTableName;
if (bMapping)
{
for (var i = 0; i < sourceDt.Columns.Count; i++)
{
var sourceColName = sourceDt.Columns[i].ColumnName;
bulkCopy.ColumnMappings.Add(sourceColName,sourceColName);
}
}
//这里出错问题很多
bulkCopy.WriteToServer(sourceDt);
return true;
}
}
}
catch (Exception ex)
{
errMsg=ex.Message;
}
return false;
}