通过参数添加在 C# 中进行日期转换失败 (SqlDbType.DateTime)

Date Conversion fails in C# via Parameter adding (SqlDbType.DateTime)

我是 C# 新手。我的声明失败了:

dbCmd.Parameters.Add("@createdTime", SqlDbType.DateTime);

createdTime 中的值为:1/18/2012 11:54:11 AM 经过大量故障排除后,我能够缩小问题范围。它会起作用 IF 我将值更改为:2012-01-18 11:54:01 AM。所以它不适用于格式。我发现了问题,但我该如何解决这个问题?我的意思是,DateTime 格式就是这样。

下面是我的更多代码来解释:

        dbCmd.CommandType = CommandType.Text;
        dbCmd.CommandText = sqlCmd;
        
        dbCmd.Parameters.Add("@ID", SqlDbType.Int);
        dbCmd.Parameters.Add("@FullName", SqlDbType.NVarChar);
        dbCmd.Parameters.Add("@createdTime", SqlDbType.DateTime);

在 C# 中显式解析值,以便 db 参数包含 DateTime,而不是字符串:

dbCmd.Parameters.Add("@createdTime", SqlDbType.DateTime)
  .Value = DateTime.ParseExact(theVariableHoldingStringDateTime, "M/d/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);

如果您使用 Add 只是设置一个参数,稍后您将在循环中为其赋值:

for each line in text file parser blah blah

  dbCmd.Parameters["@createdTime"]
    .Value = DateTime.ParseExact(theVariableHoldingStringDateTime, "M/d/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);