なぜこのエラーが発生するのか理解できますか?私は自分のPCに同じコードを持っていますが、うまくいきますが、私の友人のノートパソコンでは動作しません。私たちは同じSQL Server日時フォーマットを持っています。私はすでに、SQL Serverの日付形式と同じ文字列の日付形式を変換しようとしましたが、それでも動作しません。nvarcharデータ型をdatetimeデータ型に変換すると、範囲外の値が返されます。
EDIT:間違ったコードを投稿しました。
DateTime paymentCashDate = Convert.ToDateTime(txtPaymentCash.Text).AddDays(1).AddSeconds(-1);
DateTime orderDate = Convert.ToDateTime(lblDate.Text);
if (orderDate < paymentCashDate)
{
cmd.CommandText = "UPDATE Orders SET [email protected], [email protected], [email protected], [email protected] WHERE [email protected] AND Status='Pending'; " +
"UPDATE OrderDetails SET [email protected] WHERE [email protected] AND Status='Pending';";
cmd.Parameters.AddWithValue("@Status", "Approved");
cmd.Parameters.AddWithValue("@PaymentStatus", "Payment Accepted");
cmd.Parameters.AddWithValue("@PaymentDate", paymentCashDate.ToString());
cmd.Parameters.AddWithValue("@PaymentAmount", txtAmountCash.Text);
cmd.Parameters.AddWithValue("@OrderNo", orderNo);
cmd.ExecuteNonQuery();
con.Close();
addProject(orderNo);
Response.Redirect("Default.aspx");
}
else
{
errorPayment.Visible = true;
}
DB内のdatetimeの場合、なぜ文字列を渡すのですか?また、なぜあなたは24時間の時間を使用していないので、比較を行うために 'DateTime'オブジェクトを文字列にフォーマットしていますか? – juharr
[あなたは既にAddWithValue()を使用して停止できますか?](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/)をチェックしてください。 '.AddWithValue()'の使用を止めます - 予期しない驚くべき結果につながる可能性があります... –
'2017-06-31'のような無効な日付を渡す場合もありますが、これも変換中に同じエラーにつながります日時に変換する。 –