特定の文字列を DataTable に含まれる DateTime に変換しようとしています。しかし、何らかの理由で完全に機能していません。いくつかの組み合わせを試しました。問題は、実際には文字列に日付を囲む " " が含まれていることです。
したがって、値を含む DataTable のセル (二重引用符を含む) "2014-08-08 08:00:00"
私のコードはそのすべてを繰り返し処理し、それを DateTime に変換しようとします (SQL Server に対して bulkCopy.WriteToServer(datatable) を実行するときに必要です)。
//Fix up default values and remove double quotes from field in order to convert to date
if(dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["usagestartdate"] =
dt.Rows[i]["usagestartdate"].ToString() == "" ?
DateTime.Now.AddYears(-2014) :
Convert.ToDateTime((dt.Rows[i]["invoiceid"].ToString().Replace("'", "")));
dt.Rows[i]["usagestartdate"] =
dt.Rows[i]["usageend"].ToString() == "" ?
DateTime.Now.AddYears(-2014) :
Convert.ToDateTime(dt.Rows[i]["usageend"].ToString());
}
}
ループ内の最初の行でエラーが発生します。
文字列は有効な DateTime として認識されませんでした。
キャストを適切に機能させる方法はありますか?