尝试进行查询以查询数据库并使用C#Winform中的DatetimePicker返回行。单击日期时,它返回一个非常空的行。
我的代码看起来像这样
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());
}
}
}
我错过了什么吗?
答案 0 :(得分:2)
我假设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;