gpt4 book ai didi

c# - DateTime.TryParseExact 不在 out 参数中返回值?

转载 作者:行者123 更新时间:2023-11-29 01:18:26 24 4
gpt4 key购买 nike

下面提到的问题已解决,代码已更改以反射(reflect)更改。

我想根据存储在我的 MySQL 数据库中的日期检查当前日期。要检索当前日期,我正在使用 nist 时间服务器,它以 MM-DD-YYYY 格式返回日期,在我的数据库中,我以“YYYY-MM-DD”格式存储值。我想做的是检查我传递的日期是否等于数据库中的日期,然后做一些事情。

我使用的代码如下:

// The code originally posted has been changed to reflect changes made and it is now working fine (problem solved) a big thank you to all those who replied.
DateTime currentDate = InternetTime();
//DD/MM/YYYY is returned here convert to YYYY/MM/DD
string currentDate = x.ToString("yyyy-MM-dd");
con = new MySqlConnection(conString);
MySqlDataAdapter da = new MySqlDataAdapter();
MySqlCommand cmd = new MySqlCommand("SELECT id AS oDates FROM open_dates WHERE dates=?currentDate",con);
cmd.Parameters.AddWithValue("?currentDate",currentDate);
da.SelectCommand = cmd;
DataTable dt = new DataTable("openDates");
da.Fill(dt);

“dt”表仍然是空的,因为 TryParseExact 没有向 dateValue 写入任何内容,因此它仍然是“01-01-0001”或类似的东西。我哪里错了?如果有人能帮助我,那就太好了。实际上我想到了一个解决方法;我可以立即将字符串存储在数据库中,然后检查它们,但那是作弊;我希望日期有效。我尝试搜索可以帮助我的 MySQL 命令,但找不到。

最佳答案

您忽略了 DateTime.TryParseExact 的结果。它几乎肯定会返回 false,表明它无法解析字符串 - 并且记录了在这种情况下将 DateTime.MinValue 写入 out 参数。您应该绝对检查返回值并在解析失败时采取相应措施。

顺便说一句,我怀疑您想要一个格式字符串“yyyy-MM-dd”。

请注意,您不应该在下一行中直接在 SQL 字符串中包含日期 - 您应该改用参数化查询。

事实上,您也不应该将 x 转换为字符串 - 它已经是一个 DateTime,那么您为什么要将它转换为字符串然后解析它呢?您的评论表明您认为 DateTime 值具有特定格式 - 它没有,就像数字一样 - 格式与值如何转换为文本有关,并且不是值(value)本身固有的。

关于c# - DateTime.TryParseExact 不在 out 参数中返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7024448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com