我正在使用以下代码映射到excel文件,并使用SqlBulkCopy
更新SQL Server中的数据
foreach (var file in Directory.EnumerateFiles(basePath, "*.xlsx"))
{
var dt = GetDataTableFromExcel(file, true);
var table = "DashboardData";
using (var conn = new SqlConnection(connectionString))
{
var bulkCopy = new SqlBulkCopy(conn);
bulkCopy.DestinationTableName = table;
conn.Open();
var schema = conn.GetSchema("Columns", new[] { null, null, table, null });
foreach (DataColumn sourceColumn in dt.Columns)
{
foreach (DataRow row in schema.Rows)
{
if (string.Equals(sourceColumn.ColumnName, (string)row["COLUMN_NAME"], StringComparison.OrdinalIgnoreCase))
{
bulkCopy.ColumnMappings.Add(sourceColumn.ColumnName, (string)row["COLUMN_NAME"]);
break;
}
}
}
bulkCopy.WriteToServer(dt);
}
}
问题是我只想在SQL Server表中而不是在Excel文件中有另一列,我希望将其更新为静态值以及与此操作映射的数据。因此,随着此将数据从Excel映射到SQL Server的操作一起,我想填充另一列,即具有固定值的DataType。这可能吗?
谢谢