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;