我可以在导入数据库之前处理 SqlBulkCopy 类中的数据吗?
本文关键字:数据 SqlBulkCopy 导入 数据库 前处理 我可以 | 更新日期: 2023-09-27 18:35:45
我想将数据从电子表格导入到数据库表中。不幸的是,电子表格中的数据很混乱,到处都包含"'"。我想在批量导入之前将其删除。
大容量复制过程实际上需要 2 个步骤。 i. 将数据从电子表格复制到数据集。 ii.执行 SqlBulkCopy 以将所有数据复制到数据库表
如果我无法在 SqlBulkCopy 类中处理数据,那么在数据集中执行此操作的最佳方法是什么?
//get the data from the spreadsheet to a dataset
DataSet ds = new DataSet();
oledbConn.Open();
OleDbCommand cmd = new OleDbCommand("SELECT * FROM [sheetname]"), oledbConn);
OleDbDataAdapter oleda = new OleDbDataAdapter();
oleda.SelectCommand = cmd;
oleda.Fill(ds);
//execute to bulkcopy with the dataset
using (SqlBulkCopy bulkcopy = new SqlBulkCopy(conn))
{
bulkcopy.DestinationTableName = "[DestinationTableName]";
bulkcopy.WriteToServer(ds.Tables[0]);
}
这是我想出的删除换行符的代码,该换行符将在填充后运行
foreach (DataRow dr in ds.Tables[0].Rows)
{
foreach (DataColumn dc in ds.Tables[0].Columns)
{
if (dc.DataType == typeof(string))
{
dr[dc] = dr[dc].ToString().Replace("'n", "");
}
}
}