从字符串 yyyyMMddHHmmss 到整数类型的转换无效

Conversion from string yyyyMMddHHmmss to type integer is not valid

我正在尝试编写一个系统,通过 MVC 网络服务将其值传递给前端。

虽然是运行,但我一直遇到这个错误,我无法克服它;我已将它隔离到这行代码,但我看不出它有什么问题。这是代码行、时间戳和错误:

我不能透露太多代码,因为其中一些是敏感的,但这是通用的。如果您需要更多信息,我会尽力提供。

因为paymentRequest.TimeStamp的类型是Date?(即Nullable(Of DateTime)),那么你需要paymentRequest.TimeStamp.Value来获取它的值,所以代码片段应该是

.Timestamp = paymentRequest.TimeStamp.Value.ToString("yyyyMMddHHmmss") 

虽然它没有记录 (as far as I can find),但您也可以使用 CDateDate? 中获取日期,因此:.Timestamp = CDate(paymentRequest.TimeStamp).ToString("yyyyMMddHHmmss").

您可能希望避免使用未记录的功能,因为它可能会在以后的版本中更改而不通知。

这两种方式都会失败,错误为

System.InvalidOperationException: 'Nullable object must have a value.'

如果 paymentRequest.TimeStamp.HasValueFalse


也许令人困惑,Nullable.ToString Method 的文档说

The ToString property returns the string yielded by calling the ToString property of the object returned by the Value property.

但是,需要注意的是,这仅适用于带有 个参数的 ToString() 方法。