【问题标题】:The string was not recognized as a valid DateTime. There is an unknown word starting at index 0. label to string该字符串未被识别为有效的日期时间。有一个从索引 0 开始的未知单词。标签到字符串
【发布时间】:2013-07-05 15:24:35
【问题描述】:

这个错误是什么意思?我正在尝试从标签中检索日期并将其显示在 wpf 表单上。

          printResident.DateOfBirth = DateTime.Parse( lblDOB.ToString() );

该方法调用retrieve方法,从数据库中执行sql select,将信息获取到表单中。+

          ResidentData.Retrieve(printResident.ResidentID);

【问题讨论】:

  • lblDOB.ToString() 的值是多少?
  • @SebastianNegraszus {01/01/0001 00:00:00}
  • lblDOB是什么类型?
  • 标签?但它的数据库值是 DateTime
  • 如何将值分配给lblDOB?

标签: c# .net sql wpf


【解决方案1】:

作为猜测,您直接使用Label。尝试改用lblDOB.Content.ToString()。

【讨论】:

  • 标签不存在这样的属性
  • @user2122032 已更新。没注意到它是 WPF。
  • 我做了: printResident.DateOfBirth = DateTime.Parse(lblDOB1.Content.ToString());但得到的对象未设置为对象的实例
  • 根据 cmets 中的信息,您从数据库中获取的 DateTime 值可能无效,并且您如何将值分配给标签尚不清楚 - lblDOB.Content 应该只有在你没有分配空引用异常时才抛出它。
  • @user2122032 具体来说,您为lblDOB1 分配了什么?你有lblDOB1 = ??或lblDOB1.Content = ??吗?
【解决方案2】:

假设lblDOB 是一个标签,您需要使用:

lblDOB.Content.ToString();

最初,您使用的是lblDOB.ToString(),它返回标签的字符串表示(可能类似于 System.Windows.Controls.Label,后跟标签的内容),而不是什么DateTime.Parse 可以使用。

现在您正在尝试使用lblDOB.Content.ToString(),这是正确的方法,但您会遇到空引用异常。在将数据库中的日期加载到标签中的语句上放置一个断点,并确保它正常工作,因为它抱怨 lblDOB.Content 没有价值。

【讨论】:

    【解决方案3】:

    这可能会有所帮助:-

    DateTime dt = DateTime.Parse("01/01/0001 00:00:00");
                label1.Content = dt.ToString();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多