ExcelシートをSQLServerデータベースにインポートしています。データをアップロードすることはできますが、Excelに日付形式の列がありますmm/dd/yyyy
。yyyy/mm/dd
データベースに送信する前にこれを変換したい:
DataTable dt7 = new DataTable();
dt7.Load(dr);
DataRow[] ExcelRows = new DataRow[dt7.Rows.Count];
// Bulk Copy to SQL Server
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
{
bulkCopy.DestinationTableName = "ExcelTable";
dt7.Rows.CopyTo(ExcelRows, 0);
for (int i = 0; i < ExcelRows.Length; i++)
{
DateTime oldDate =Convert.ToDateTime(ExcelRows[i]["data"]).Date;
DateTime newDate = Convert.ToDateTime(oldDate).Date;
ExcelRows[i]["data"] = newDate.ToString("yyyy/MM/dd");
}
bulkCopy.WriteToServer(ExcelRows);
エラー:DateTime oldDate = Convert.ToDateTime(ExcelRows [i] ["data"])。Date;
エラー:オブジェクトをDBNullから他のタイプにキャストできません。
それが言っているので、それは間違った列か何かを読んでいるように私には思えますcannot be cast from DBnull
。Excelシートには2つの列があります。
id | data (which is date)
に置き換えてみましExcelRows[i]["data"]
たExcelRows[i][1]
が、同じエラーが発生しました。