【问题标题】:Filter DataGridView based on Date values from MySQL in C#在 C# 中根据来自 MySQL 的日期值过滤 DataGridView
【发布时间】:2020-08-24 13:21:07
【问题描述】:

来自新人的问候。

我正在为我的地质小组编写一个时移日历(如下所示)。

我搜索了很多,但找不到合适的解决方案。我想根据当前月份(不是间隔)限制 DataGridView 中显示的记录。例如,团队成员应该能够看到属于 8 月的记录(如果月份是 8 月)。下个月,应该是新鲜的。

我有一个填充 DataGridView 的“检索”按钮和一个从 MySQL 获取的日期列。程序应该在 DataGridView(或 MySQL 表)的“Date”列(在 DB 中命名为 dateStart)中进行搜索,只显示属于 2020 年 8 月的记录。我的日期格式是 YYYY-MM-DD。

//RETRIEVE FROM DB
    private void retrieve()
    {
        dtgList.Rows.Clear();

        dtpDate.Format = DateTimePickerFormat.Custom;


        //SQL STMT
        string sql = $"SELECT * FROM {tbl_staffCode} ";
        cmd = new MySqlCommand(sql, con);

        //OPEN CON,RETRIEVE,FILL DGVIEW
        try
        {
            con.Open();

            adapter = new MySqlDataAdapter(cmd);

            adapter.Fill(dt);

            //LOOP THRU DT
            foreach (DataRow row in dt.Rows)
            {
                populate(row[0].ToString(), row[1].ToString(), row[2].ToString(), row[3].ToString(), row[4].ToString(), row[5].ToString());
            }



            con.Close();

            //CLEAR DT
            dt.Rows.Clear();
        }
        catch (Exception ex)
        {

            MessageBox.Show(ex.Message);
            con.Close();
        }
    }

非常感谢您。

【问题讨论】:

  • SELECT * FROM {tbl_staffCode} WHERE MONTH(DateColumn) = 8 AND YEAR(DateColumn) = 2020

标签: c# mysql date filter datagridview


【解决方案1】:

感谢 Chetan Ranpariya 拓宽了我的视野。 解决方案就在这里;

DateTime dtime = DateTime.Now;
        int month = dtime.Month;
        int year = dtime.Year;

        //SQL STMT
        string sql = $"SELECT * FROM {tbl_staffCode} WHERE MONTH(DateStart) = {month} AND YEAR(DateStart) = {year} ";
        cmd = new MySqlCommand(sql, con);

【讨论】:

    猜你喜欢
    • 2012-09-22
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-11
    相关资源
    最近更新 更多