C# 使用日期筛选datagridview中的数据

C# 使用日期筛选datagridview中的数据,c#,datagridview,C#,Datagridview,我正试图通过两个日期列(startDate和endDate)过滤datagridview中的数据 我想检查arow中的结束日期是否已过期,但网格视图中acheck框的值为=“过期”否则将其设置为=“有效” 但我不知道如何让它成为现实请帮我做到这一点 以下是我尝试过的代码: SqlConnection CN = new SqlConnection(mysql.CON.ConnectionString); SqlDataAdapter sda = new SqlDat

我正试图通过两个日期列(startDate和endDate)过滤datagridview中的数据

我想检查arow中的结束日期是否已过期,但网格视图中acheck框的值为=“过期”否则将其设置为=“有效”

但我不知道如何让它成为现实请帮我做到这一点

以下是我尝试过的代码:

        SqlConnection CN = new SqlConnection(mysql.CON.ConnectionString);
        SqlDataAdapter sda = new SqlDataAdapter();
        sda.SelectCommand.CommandText = "select TASDEED.ID ,ESALNO,DATTSADEED,NAME,EGARMONY,DATBEGIN,DATEND,AKARTYPE  from TASDEED ";
        try
        {
            foreach (DataGridView row in dataGridView1.Rows)
            {
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    if (myStatic.CalcExpire(dt.Rows[i]["DATEND"].ToString()))//
                    {
                        dataGridView1.Rows[i].Cells[8].Value = "Expired";
                    }
                    else
                    {
                        dataGridView1.Rows[i].Cells[8].Value = "Valid";
                    }

                }
            }
            BindingSource bsource = new BindingSource();
            bsource.DataSource = dt;
            dataGridView1.DataSource = bsource;
            sda.Update(dt);
           sda.Fill(dt);
        }
        catch(Exception ex) 
        {
            MessageBox.Show(ex.Message);
        }

您能展示一下您的myStatic.CalcExpire方法吗?在设置datasource之前,您正在遍历行。这总是会失败:(您应该直接在DataTable中设置值,而不是
DataGridView
Sriram Sakthivel,您可以编写代码吗
    public static bool CalcExpire(string datee)
    {
        try
        {
            string[] Arr = datee.Split('/');
            long Day1 = Convert.ToInt64(Arr[2]);
            long Month1 = Convert.ToInt64(Arr[1]);
            long Year1 = Convert.ToInt64(Arr[0]);

            System.Globalization.UmAlQuraCalendar UmDate = new System.Globalization.UmAlQuraCalendar();
            long Day = Convert.ToInt64(UmDate.GetDayOfMonth(DateTime.Now));
            long Month = Convert.ToInt64(UmDate.GetMonth(DateTime.Now));
            long Year = Convert.ToInt64(UmDate.GetYear(DateTime.Now));

            if (Year > Year1)
                return true;
            else if (Year == Year1 && Month > Month1)
                return true;
            else if (Year == Year1 && Month == Month1 && Day >= Day1)
                return true;
            else
                return false;
        }
        catch { return false; }
    }