2013-03-04 56 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()); 
//... 
相关问题