2014-02-25 117 views
1

插入值,我有這個語法對我的程序:從字符串轉換日期和/或時間時轉換失敗。從的DateTimePicker

con.Open(); 
SqlCommand cmdInsert = new SqlCommand(); 
cmdInsert.Connection = con; 
cmdInsert.CommandText = 
"INSERT INTO Customers VALUES (@Firstname, @LastName, @Birthdate)"; 
cmdInsert.Parameters.Add("@Firstname", SqlDbType.VarChar).Value = txtFirstname.Text; 
cmdInsert.Parameters.Add("@LastName", SqlDbType.VarChar).Value = txtLastName.Text; 
cmdInsert.Parameters.Add("@BIrthdate", SqlDbType.DateTime).Value = dtpBirthdate.Value; 

每當執行這段代碼,我得到的錯誤

「轉換,從性格 轉換日期和/或時間時失敗字符串「

我猜測問題根源於」dtpBirthdate.Value「語法。我試圖尋找這部分語法的正確格式,但我從來沒有幸運。

附加信息:

我也改變dtpBirthdate.ValueDBNull.Value和它產生同樣的錯誤。

回答

2

使用返回的日期時間的日期屬性:

dateTimePicker1.Value.Date 
0

嘗試DateTime.Parse(dtpBirthdate.Value)

0
cmdInsert.Parameters.Add("@BIrthdate", SqlDbType.String).Value = dtpBirthdate.Value; 
+0

請添加一些關於您的代碼的具體描述。它有助於人們更好地理解您的解決方案。 – Rachcha

+0

我的意思是請編輯你的答案並添加你的描述。此外,添加說明和更多混淆的代碼。 – Rachcha

0

試試這個:

cmdInsert.Parameters.Add("@BIrthdate", SqlDbType.DateTime).Value = 
       dtpBirthdate.Value.ToString("yyyy-MM-ddTHH:mm:ss"); 
1

我解決它。我的代碼有什麼問題是我的insert語句中參數變量的順序。它應該匹配我數據庫中列的順序。

相關問題