2013-03-04 52 views
0

我從C#插入日期到SQL Server時遇到問題。將日期從c#插入DateTime到SQL Server的列的正確方法是什麼?正確的過程來轉換字符串日期(使用jQuery的日期選擇器)到C日期時間#

目前我的方法是將字符串日期轉換爲日期時間格式,然後插入數據庫。

Datetime dt = Convert.ToDateTime(txtDate.Text.Trim()); 

這樣做我遇到了一個錯誤,其中當前系統日期與新轉換日期衝突。將字符串日期插入數據庫的正確方法是什麼?

+1

到底在哪你的「衝突」參數的查詢?在將字符串轉換爲DateTime還是將DateTime插入數據庫?如果是後者,請向我們展示您的INSERT代碼。 – 2013-03-04 12:15:27

+0

我已經更新了這個問題,當jquery日期時間格式(比如mm/dd/yyyy)與系統日期時間格式衝突時(例如dd/mm/yyyy) – Kannan 2013-03-04 12:21:58

回答

1

使用SqlParameter並形成parameterized query。這樣你就可以將.Net DateTime對象傳遞給SQL Server。

喜歡的東西:

using (SqlConnection con = new SqlConnection("yourconnectionstring")) 
using (SqlCommand cmd = new SqlCommand("INSERT into yourTable([DateCol]) VALUES (@pDate)", con)) 
{ 
    cmd.Parameters.AddWithValue("@pDate", DateTime.Now); 
    con.Open(); 
    cmd.ExecuteNonQuery(); 
} 

對於你的問題:

什麼是插入串日起數據庫的正確方法是什麼?

不要。而是將日期字符串轉換爲DateTime對象,然後使用參數化查詢將其插入到數據庫中。

的評論:

你將如何把字符串轉換日期(使用jQuery日期選擇器),以日期時間 格式?

您可以使用DateTime.ParseExact作爲日期時間選擇器的格式,並將該字符串轉換爲DateTime對象。

例如,如果您的日期時間選擇器格式是:mm/dd/yyyy那麼你可以嘗試:

DateTime dt = DateTime.ParseExact(dateString, "mm/dd/yyyy", CultureInfo.InvariantCulture); 
+0

我想你已經走得太遠了。我的問題是你將如何將字符串日期(使用jquery datepicker)轉換爲日期時間格式? – Kannan 2013-03-04 12:12:50

+0

@Kannan,'使用jquery日期選擇器' - 這是非常重要的信息,但從這個問題中缺少。 :) – Habib 2013-03-04 12:13:58

+0

非常感謝。這就是我一直在尋找的。你可以解釋'CultureInfo.InvariantCulture'是做什麼的? – Kannan 2013-03-04 12:45:07

0

創建這樣

SqlCommand cmd = new SqlCommand ("insert into T (...) values (@d",db); 
cmd.Parameters.AddWithValue("@d",Convert.ToDateTime(txtDate.Text.Trim()); 
//... 
相關問題