SQL Server批量复制可更新文件中的数据,但也可单独更新一列

时间:2019-01-09 19:20:57

标签: c# .net sql-server sqlbulkcopy

我正在使用以下代码映射到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。这可能吗?

谢谢

0 个答案:

没有答案