通过参数添加在 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);
我是 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);