0

我在将日期从 c# 插入 SQL Server 时遇到了问题。将日期从 c# 插入到 SQL Server 中的 DateTime 列的正确方法是什么。

目前我的方法是将字符串日期转换为 DateTime 格式,然后插入数据库。

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

这样做我遇到了一个错误,当前系统日期与新转换的日期冲突。将字符串日期插入数据库的正确方法是什么?

4

2 回答 2

1

使用SqlParameter并形成参数化查询。通过这种方式,您会将 .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 datepicker)转换为日期时间格式?

您可以使用DateTime.ParseExact日期时间选择器的格式并将字符串转换为 DateTime 对象。

例如,如果您的 DateTime 选择器格式是:mm/dd/yyyy那么您可以尝试:

DateTime dt = DateTime.ParseExact(dateString, "mm/dd/yyyy", CultureInfo.InvariantCulture);
于 2013-03-04T12:03:17.703 回答
0

使用这样的参数创建查询

SqlCommand cmd = new SqlCommand ("insert into T (...) values (@d",db);
cmd.Parameters.AddWithValue("@d",Convert.ToDateTime(txtDate.Text.Trim());
//...
于 2013-03-04T12:11:23.230 回答