在C#中搜索时,Datetimepicker返回空行

时间:2017-10-12 11:51:43

标签: c# datetimepicker

尝试进行查询以查询数据库并使用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());
            }
        }
    }

我错过了什么吗?

1 个答案:

答案 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;