Gan*_*sha 6 asp.net bulkinsert sqlbulkcopy
在下面的代码中,我尝试将excel中的记录插入到Database表中,但是不会通过excel传递额外的列,该列必须使用从请求的页面分配的常量值(具有不同值的foreach循环)填充.
string CONSTANTVALUE="Test";
bulkCopy.DestinationTableName = "TABLE NAME";
bulkCopy.ColumnMappings.Add("TABLECOLUMN1", "EXCELCOLUMN1");
bulkCopy.ColumnMappings.Add("TABLECOLUMN2", "EXCELCOLUMN2");
bulkCopy.ColumnMappings.Add("TABLECOLUMN3", CONSTANTVALUE);
bulkCopy.WriteToServer(dr);
Run Code Online (Sandbox Code Playgroud)
但代码不起作用.有任何想法吗?
我假设您dr是某种类型的读者。它的人口情况如何?可以选择一个默认值到列中并映射该值。像这样(sql语法)
select
EXCELCOLUMN1,
EXCELCOLUMN2,
'ConstantValueFromPage' as EXCELCUSTOM
from
sheet1
Run Code Online (Sandbox Code Playgroud)
然后有:
bulkCopy.ColumnMappings.Add("TABLECOLUMN3", "EXCELCUSTOM");
Run Code Online (Sandbox Code Playgroud)
华泰
您可以通过更改命令文本来做到这一点。如下
string CONSTANTVALUE="Test";
OleDbCommand command=new OleDbCommand("select *,"+CONSTANTVALUE+" as [ConstantCol] from [sheet$]",ObleDbCon);
using (DbDataReader dr = command.ExecuteReader())
{
bulkCopy.DestinationTableName = "TABLE NAME";
bulkCopy.ColumnMappings.Add("TABLECOLUMN1", "EXCELCOLUMN1");
bulkCopy.ColumnMappings.Add("TABLECOLUMN2", "EXCELCOLUMN2");
bulkCopy.ColumnMappings.Add("TABLECOLUMN3", "ConstantCol");
bulkCopy.WriteToServer(dr);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9330 次 |
| 最近记录: |