日期时间更新格式错误Asp.Net

时间:2013-10-30 11:21:02

标签: c# asp.net sql sql-server datetime

我有一个意大利语格式的日期时间字符串,如下所示:

23/03/2012

此更新的sql命令是在datetime部分:

DateTime.ParseExact(Reg_tes.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture)

这适用于我的Sql服务器(意大利语),但如果我在我的服务器(英语)上这样做会给我这个错误:

  

“将varchar数据类型转换为日期时间数据类型   导致超出范围的值“

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您应该始终使用参数化查询来防止像这样的sql注入和本地化问题。

所以我假设您将此日期时间作为字符串传递给数据库。

using(var con = new SqlConnection("connection-string"))
using(var cmd = new SqlCommand("UPDATE dbo.TableName SET DateColumn=@DateColumn WHERE PK=@PK", con))
{
    DateTime reg_tes = DateTime.ParseExact(Reg_tes.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
    cmd.Parameters.AddWithvalue("@DateColumn", reg_tes);
    // other parameters ...
    con.Open();
    int affected = cmd.executeNonQuery();
}