【问题标题】:Color GridView Expiration Date颜色网格视图到期日期
【发布时间】:2019-10-16 21:36:08
【问题描述】:

我是 C# 编程中的“新人”,我正在尝试为几天后到期或已经到期的日期着色。这是我的代码

SqlConnection cs2 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\\Users\Nikola\documents\visual studio 2010\Projects\Gym Software\Gym Software\Data.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
sda = new SqlDataAdapter("Select DatumIstice FROM Korisnici", cs2);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
    var now = DateTime.Now;
    var expirationDate = DateTime.Parse(row.Cells[0].Value.ToString());
    var sevenDayBefore = expirationDate.AddDays(-7);
    if (now > sevenDayBefore && now < expirationDate)
    {
        row.DefaultCellStyle.BackColor = Color.Yellow;
    }
    else if (now > expirationDate)
    {
        row.DefaultCellStyle.BackColor = Color.Red;
    }
}

最后一行应该是彩色的,但不是:

【问题讨论】:

  • 那张截图是在哪一天拍摄的?因为“何时”会影响代码的结果。这使得识别问题变得更加困难。我可以看到的一个可能问题是,如果 now == expirationDate,您的代码不会为一行着色。这是故意的吗?

标签: c# asp.net gridview


【解决方案1】:

这个怎么样:

row.BackColor = Color.Red;   

【讨论】:

    【解决方案2】:

    你可以试试这个 - 假设到期日期是Datumlsteka,你应该从4th列,not 0th列中选择值并将其用作expirationDate

        SqlConnection cs2 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\\Users\Nikola\documents\visual studio 2010\Projects\Gym Software\Gym Software\Data.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
    
    sda = new SqlDataAdapter("Select DatumIstice FROM Korisnici", cs2);
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        var now = DateTime.Now;
        var expirationDate = DateTime.Parse(row.Cells[4].Value.ToString());
        var sevenDayBefore = expirationDate.AddDays(-7);
    
        if (now > sevenDayBefore && now < expirationDate)
        {
            row.DefaultCellStyle.BackColor = Color.Yellow;
        }
        else if (now > expirationDate)
        {
            row.DefaultCellStyle.BackColor = Color.Red;
        }
    }
    

    【讨论】:

    • 我试过了,但还是一样的想法,没有红色..或黄色..prntscr.com/6pdoe5
    • 你能检查一下你得到的过期日期的值吗?
    • 我做到了。我放了检查按钮,它的工作大声笑......一直,代码在Form1_Load下......现在它工作了。谢谢哥们。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多