问题描述
新秀的问候。
我正在为地质工作人员编写一个时移日历(如下所示)。
我进行了很多搜索,但找不到合适的解决方案。我想基于当前月份(而不是间隔时间)限制DataGridView中显示的记录。例如,团队成员应该能够查看属于8月的记录(如果月份为8月)。下个月应该新鲜。
我有一个“获取”按钮,它填充了DataGridView和从MysqL获取的Date列。该程序应在DataGridView(或MysqL表)的“日期”列(在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();
}
}
非常感谢您。
解决方法
感谢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);