【问题标题】:datetime variable returning 'String was not recognized as a valid DateTime.'返回“字符串未被识别为有效日期时间”的日期时间变量。
【发布时间】:2020-08-17 17:53:17
【问题描述】:

我有一个将 ExpiryDate 设置为 DATETIME 的 accdb 数据库文件。 datagridview 被格式化为 dd/MM/yyyy。 我正在尝试过滤到日期之间的绑定源,如下所示:

    private void button1_Click(object sender, EventArgs e)
    {

        DateTime srchDateTo = DateTime.Today.AddMonths(1);
        DateTime srchDateFrom = DateTime.Today.AddMonths(-11);
        client1BindingSource.Filter = "ExpiryDate < #" + srchDateTo + "# And ExpiryDate > #" + srchDateFrom + "#";
    }

当我单击按钮时,我得到:'字符串未被识别为有效的日期时间。'

我已经放入了一个消息框,并且变量的格式正确。

这是我的第一个数据库,我还有很多东西要学,所以在我研究回复之前我可能无法理解这些回复。

【问题讨论】:

    标签: datetime bindingsource


    【解决方案1】:

    我的理解是,您需要先格式化 DateTime,然后再将其粘贴到过滤器中。

    在 DateTime 变量的末尾尝试.ToString("dd/MM/yyyy")

    例如:

    client1BindingSource.Filter = "ExpiryDate < #" +
        DateTime.Today.AddMonths(1).ToString("dd/MM/yyyy") + "# And ExpiryDate > #" + 
        DateTime.Today.AddMonths(-11).ToString("dd/MM/yyyy") + "#";
    

    编码愉快:)

    【讨论】:

    • 我仍然有同样的错误,但它给了我尝试以下的想法:
    • 字符串 srchDateTo = DateTime.Today.AddMonths(1).ToString("dd/MM/yyyy");字符串 srchDateFrom = DateTime.Today.AddMonths(-11).ToString("dd/MM/yyyy"); DateTime dateTo = DateTime.Parse(srchDateTo); DateTime dateFrom = DateTime.Parse(srchDateFrom);client1BindingSource.Filter = "ExpiryDate 不为 Null And " + "ExpiryDate #" + dateFrom + "#";
    • @Garry 你确定 DateTime 必须有这种格式吗?在 Microsoft Docs 中,他们描述了两种具有不同位置设置的格式(美国和非美国)。见support.microsoft.com/en-us/office/…
    • 我知道存储的数据(DATETIME)和数据显示几乎没有关系。
    • (对不起,我一直按回车换行)。我的问题是表字段是日期时间,变量是日期时间,但我不断收到“字符串未被识别为有效日期时间”。 - 我知道 NULL 值不是有效的 DATETIME 格式,但我没有。
    【解决方案2】:

    我发现不是有效日期时间的字符串是字段标题。 答案是使用字符串变量而不是日期时间变量。

            string srchDateTo = DateTime.Today.AddMonths(1).ToString("dd/MMM/yyyy");
            string srchDateFrom = DateTime.Today.AddMonths(-11).ToString("dd/MMM/yyyy");
            client1BindingSource.Filter = "ExpiryDate < #" + srchDateTo + "# And ExpiryDate > #" + srchDateFrom + "#";
    

    【讨论】:

      猜你喜欢
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多