C# - Mysql DateTime compare
本文关键字:compare DateTime Mysql | 更新日期: 2023-09-27 18:28:00
下面的代码不起作用。
public int getRecord(int number, DateTime startingDateTime)
{
int id=-1;
string stm = "SELECT * FROM history WHERE number= '"
+ number + "' AND 'startingDateTime' = '" + startingDateTime+ "'";
try
{
con.Open();
cmd = new MySqlCommand(stm, con);
}
catch (Exception e)
{
ErrorMessage = e.Message;
con.Close();
return 0;
}
try
{
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
id = rdr.GetInt32(0);
}
}
catch (Exception e)
{
ErrorMessage = e.Message;
con.Close();
return 0;
}
con.Close();
return 1;
}
语法没有问题,至少它没有警告我。但错误是:
调用Read()之前访问字段的尝试无效
我想比较两个日期时间变量。这个逻辑对我来说很好。如果有人知道诀窍,我正在等待。
没有必要存储数字和DateTime值。你有个坏习惯要改掉。将列更改为整数类型和日期时间类型。在列名中使用单引号是没有意义的。只需删除它们。
也可以使用using
语句自动处理连接、命令和读取器,而不是手动调用Close
方法。
using(var con = new MySqlConnection(conString))
using(var stm = con.CreateCommand())
{
stm.CommandText = "SELECT * FROM history WHERE number = @number AND startingDateTime = @start";
stm.Parameters.AddWithValue("@number", number);
stm.Parameters.AddWithValue("@start", startingDateTime);
using(var rdr = cmd.ExecuteReader())
{
id = rdr.GetInt32(0);
}
}