Datetimepicker returns 在 C# 中搜索时为空行
Datetimepicker returns empty rows upon search in C#
尝试使用 C# Winform 中的 DatetimePicker 进行查询以查询数据库和 return 行。当我单击日期时,它 return 是一个非常空的行。
我的代码是这样的
private void dateTimePicker_ValueChanged(object sender, EventArgs e)
{
string constring = ConfigurationManager.ConnectionStrings["MySQLDatabaseConnection"].ConnectionString;
using (MySqlConnection con = new MySqlConnection(constring))
{
string sql = "SELECT CAST(visit_date AS DATE) AS VISIT_DATE WHERE visit_date='" + dateTimePicker.Value.Date + "'";
try
{
con.Open();
MySqlDataAdapter da = new MySqlDataAdapter(sql, con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
我是不是漏了什么?
我假设 DateTimePicker
选择 Date
(没有时间)但是在数据库中你存储了带时间的约会。如果您想在那个日期进行所有约会,则必须使用 vistidate >= @datestart and visitdate < DATE_ADD(@datestart, INTERVAL 1 DAY)
.
请注意,您还应该始终使用 sql 参数来防止 sql 注入和转换问题。
string sql = @"SELECT * FROM vms_db.waiting_appointments
WHERE vistidate >= @datestart
AND visitdate < DATE_ADD(@datestart, INTERVAL 1 DAY)";
MySqlDataAdapter da = new MySqlDataAdapter(sql,con);
da.SelectCommand.Parameters.Add("@datestart", MySqlDbType.DateTime).Value = dateTimePicker.Value.Date;
尝试使用 C# Winform 中的 DatetimePicker 进行查询以查询数据库和 return 行。当我单击日期时,它 return 是一个非常空的行。
我的代码是这样的
private void dateTimePicker_ValueChanged(object sender, EventArgs e)
{
string constring = ConfigurationManager.ConnectionStrings["MySQLDatabaseConnection"].ConnectionString;
using (MySqlConnection con = new MySqlConnection(constring))
{
string sql = "SELECT CAST(visit_date AS DATE) AS VISIT_DATE WHERE visit_date='" + dateTimePicker.Value.Date + "'";
try
{
con.Open();
MySqlDataAdapter da = new MySqlDataAdapter(sql, con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
我是不是漏了什么?
我假设 DateTimePicker
选择 Date
(没有时间)但是在数据库中你存储了带时间的约会。如果您想在那个日期进行所有约会,则必须使用 vistidate >= @datestart and visitdate < DATE_ADD(@datestart, INTERVAL 1 DAY)
.
请注意,您还应该始终使用 sql 参数来防止 sql 注入和转换问题。
string sql = @"SELECT * FROM vms_db.waiting_appointments
WHERE vistidate >= @datestart
AND visitdate < DATE_ADD(@datestart, INTERVAL 1 DAY)";
MySqlDataAdapter da = new MySqlDataAdapter(sql,con);
da.SelectCommand.Parameters.Add("@datestart", MySqlDbType.DateTime).Value = dateTimePicker.Value.Date;