我正在尝试将数据从“csv”文件传输到SQL数据库。是否可以按默认值映射某些字段,而这些字段在“csv”文件中不存在?
如下所示:
bulkCopy.ColumnMappings.Add("Destenition_column_name", "constant_value");
感谢您提前!
答案 0 :(得分:3)
What about setting a default column BEFORE populating the DataTable?
var returnTable = new DataTable();
returnTable.Columns.Add("Constant_Column_Name").DefaultValue = "Constant_Value";
If you then add rows each row will always have the specified default value for this column without explicitly setting it.
答案 1 :(得分:0)
如果您自己创建DataTable,Anytoe的答案可能会很有用。但是,当您从某种库方法获取dataTable时,可能会出现这种情况,因此您将无法使用默认值。对于这种情况,我找到了以下解决方案:
var dt = await GetDataTable();
dt.Columns.Add("ImportFileId", typeof(long), importFileId.ToString());
这是一个名为“表达式列”的功能。例如,您可以将此解决方案与具有“ .dataset()”方法的ExcelDataReader库一起使用。
如果您不想使用“表达式列”,总是可以遍历所有行:
foreach (DataRow dr in dt.Rows)
{
dr["ImportFileId"] = importFileId.ToString();
}