2017-07-18 106 views
0

有人可以帮我弄清楚为什么我收到此错误吗?我在我的电脑上有相同的代码,它工作正常,但在我的朋友的笔记本电脑上它不会工作。我们有相同的SQL Server日期时间格式。我已经尝试将字符串日期格式转换为与SQL Server日期格式相同,但它仍然不起作用。将nvarchar数据类型转换为日期时间数据类型导致超出范围值.3

编辑:我不好,我发布了错误的代码。

 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; 
     } 
+1

如果它是DB中的日期时间,为什么要传递'string'?另外,为什么要将'DateTime'对象格式化为字符串来进行比较,尤其是因为您没有使用24小时的时间? – juharr

+0

你应该看看[我们可以停止使用AddWithValue()了吗?](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/)并停止使用'.AddWithValue()' - 它可能会导致意想不到的和令人惊讶的结果... –

+0

可能有情况下,您传递无效日期,如'2017-06-31',这也会导致同样的错误,同时转换到datetime。 –

回答

0

您试图更新stringnvarchar)为DATETIME列。 变化:

cmd.Parameters.AddWithValue("@PaymentDate", paymentCashDate.ToString()); 

要:

cmd.Parameters.AddWithValue("@PaymentDate", paymentCashDate); 

另一件事情,我看你使用的是TextBox控制持有的日期(其确定,因为你是铸造文成DateTime),但我建议你要使用DateTimePicker控制,它将节省铸造的需求,并且用户将拥有更好的用户体验。

Introduction to the Windows Forms DateTimePicker Control

+0

是的,这工作!该死的一直想搞清楚这一个小时lmao。顺便说一句我可以问,为什么这个代码没有在我的电脑中的错误,它已经在我的朋友的笔记本电脑,即使我们有相同的SQL数据库 –

+0

很好的机会,你的freind操作系统日期文本的格式是不同的OS 12/12/2012 vs 12-dec-12 .. – jonathana

+0

哦,好的,谢谢! –

相关问题