我可以在导入数据库之前处理 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]);
    }

我可以在导入数据库之前处理 SqlBulkCopy 类中的数据吗?

这是我想出的删除换行符的代码,该换行符将在填充后运行

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", "");
       }
     }
}