gpt4 book ai didi

c# - MySql HasRows 总是返回 true

转载 作者:行者123 更新时间:2023-11-30 22:27:10 25 4
gpt4 key购买 nike

我的代码有问题:

using (MySqlConnection conn = new MySqlConnection(cnstr))
{
conn.Open();
MySqlCommand checkuser = new MySqlCommand("select * from table1 where UserID='A00001' and FHDate < '" + DateTime.Now + "'",conn);
MySqlDataReader chk = checkuser.ExecuteReader();
if (chk.HasRows)
{ ....... }

当 FHDate='2016-01-17' chk.HasRows 返回 true 时这个正确答案,但是 FHDate='2016-01-19' chk.HasRows 仍然返回 true。我能找到哪里做错了吗?

请帮忙。

最佳答案

我觉得你的 FHDate 列是一些 Datetime 类型的,但你提供你的 DateTime 值作为 string,它仍然 为字符串比较返回 true。

使用 parameterized query 添加此 DateTime.Now 值并使用 MySqlDbType 作为 Datetime 提供它的参数类型,它应该是 okey if 除此以外一切正常。

MySqlCommand checkuser = new MySqlCommand("select * from table1 where UserID='A00001' and FHDate < @date", conn);
checkuser.Parameters.Add("@date", MySqlDbType.Datetime).Value = DateTime.Now;
...

还可以使用 using 语句来处理您的命令和阅读器,就像您处理连接一样。

关于c# - MySql HasRows 总是返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34856542/

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