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

本文关键字:Asp Net 错误 格式 时间 更新 日期 | 更新日期: 2023-09-27 18:37:23

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

23/03/2012

此更新的 SQL 命令在日期时间部分是这样的:

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

这适用于我的 Sql 服务器(意大利语),但如果我在我的服务器(英语)上执行此操作,我会给出此错误:

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

我该如何解决这个问题?

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

应始终使用参数化查询来防止此类 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();
}