1

スプレッドシートからデータベーステーブルにデータをインポートしたい。残念ながら、スプレッドシートのデータは乱雑で、どこにでも「\n」が含まれています。一括インポートの前に削除したい。

一括コピー手順には、実際には2つのステップが必要です。私。スプレッドシートからデータをデータにコピーします。ii。SqlBulkCopyを実行して、すべてのデータをデータベーステーブルにコピーします

SqlBulkCopyクラスのデータを処理できなかった場合、DataSetで処理するための最良の方法は何ですか?

    //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]);
    }
4

1 に答える 1

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", "");
       }
     }
}
于 2012-05-30T05:21:12.490 に答える