You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET 同页面两个date类型TextBox仅单个报输入字符串格式错误

问题根因

问题出在可空DateTime类型(DateTime?/Nullable)的方法调用差异上:

  • 非可空的DateTime类型原生支持带格式化参数的ToString(string format)重载,你给txtScadenza赋值的代码合法,输出的yyyy-MM-dd格式完全符合HTML5 type=date输入框的赋值要求,所以能正常展示。
  • 可空的DateTime?类型本身没有带格式化参数的ToString重载,你直接调用Utente.dataScadenza.ToString("yyyy-MM-dd")属于非法方法调用,自然会触发格式错误。哪怕你确认该字段当前有值,只要没有先访问可空类型的Value属性拿到实际的DateTime结构体,就无法调用带格式的ToString方法。

修复方案

先判断可空日期是否有值,再通过Value属性访问实际的DateTime对象后格式化:

// 先做空值判断,避免空引用异常
if (Utente.dataScadenza.HasValue)
{
    txtScadenzaDip.Text = Utente.dataScadenza.Value.ToString("yyyy-MM-dd");
}
else
{
    // 空值时的自定义处理,比如给控件赋空
    txtScadenzaDip.Text = string.Empty;
}

内容的提问来源于stack exchange,提问作者Gabriele Cozzolino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:54:04