有人可以帮我弄明白我收到此错误的原因吗?我在我的电脑上有相同的代码,它工作正常,但在我朋友的笔记本电脑上它不会工作。我们有相同的SQL Server日期时间格式。我已经尝试将字符串日期格式转换为与SQL Server日期格式相同,但它仍然无法正常工作。
编辑:我的错,我发错了代码。 DateTime paymentCashDate = Convert.ToDateTime(txtPaymentCash.Text).AddDays(1).AddSeconds(-1);
DateTime orderDate = Convert.ToDateTime(lblDate.Text);
if (orderDate < paymentCashDate)
{
cmd.CommandText = "UPDATE Orders SET PaymentStatus=@PaymentStatus, Status=@Status, PaymentAmount=@PaymentAmount, PaymentDate=@PaymentDate WHERE OrderNo=@OrderNo AND Status='Pending'; " +
"UPDATE OrderDetails SET Status=@Status WHERE OrderNo=@OrderNo 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;
}
答案 0 :(得分:0)
您正尝试将string
(nvarchar
)更新为日期时间列。
改变:
cmd.Parameters.AddWithValue("@PaymentDate", paymentCashDate.ToString());
要:
cmd.Parameters.AddWithValue("@PaymentDate", paymentCashDate);
另一件事,我看到你正在使用TextBox
控件来保存日期(确定,因为你将文本转换为DateTime
),但我建议你使用DateTimePicker
控制,它将节省铸造的需要,用户将有一个更好的用户体验。