2017-07-18 70 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

哦,好的,謝謝! –

相關問題