更改datagridview的颜色取决于数据库值c#

时间:2018-09-27 12:10:53

标签: c# .net

我有一个程序可以跟踪我的狗何时外出。然后我会根据它是哪只狗而放不同的颜色。

因此,首先,您必须注册一个帐户。并命名1-5条狗。 https://gyazo.com/74448c96f96365c419ebd8c1137ea20a

然后,在添加将存储在数据库+ datagrindview中的信息时。您可以这样添加它。

https://gyazo.com/4a4e22519e61414fa464e35d6b7e7d3c

之后,您可以单击“历史记录”按钮,这将带您进入此页面。 https://gyazo.com/fc1b5ea196a36b50d4e9db0d4a0d601a 正如您在图片上看到的那样,颜色在那里,但这是因为我在代码中添加了狗的名字。

 //Showing history
        con.Open();
        SqlCommand cmd = con.CreateCommand();
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "SELECT (Hund),(Vem),(Vad),(Datum),(Tid) FROM lexidatabase.dbo.tbl_rastad WHERE username = @Username ORDER BY (Datum) desc,(Tid) desc";
        cmd.Parameters.Add("@Username", SqlDbType.VarChar, 50).Value = Login.username;
        cmd.ExecuteNonQuery();
        DataTable dt = new DataTable();
        SqlDataAdapter sa = new SqlDataAdapter(cmd);
        sa.Fill(dt);
        historik.DataSource = dt;
        con.Close();

    }
    private void historik_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        DataGridView dgv = sender as DataGridView;

        if (dgv.Columns[e.ColumnIndex].Name.Equals("Hund"))
        {
            if (e.Value != null && e.Value.ToString().Trim() == "Lexi")
            {
                dgv.Rows[e.RowIndex].Cells["Hund"].Style.BackColor = Color.LightBlue;
                dgv.Rows[e.RowIndex].Cells["Vem"].Style.BackColor = Color.LightBlue;
                dgv.Rows[e.RowIndex].Cells["Vad"].Style.BackColor = Color.LightBlue;
                dgv.Rows[e.RowIndex].Cells["Datum"].Style.BackColor = Color.LightBlue;
                dgv.Rows[e.RowIndex].Cells["Tid"].Style.BackColor = Color.LightBlue;
            }
            else if(e.Value != null && e.Value.ToString().Trim() == "Selma")
            {
                dgv.Rows[e.RowIndex].Cells["Hund"].Style.BackColor = Color.Pink;
                dgv.Rows[e.RowIndex].Cells["Vem"].Style.BackColor = Color.Pink;
                dgv.Rows[e.RowIndex].Cells["Vad"].Style.BackColor = Color.Pink;
                dgv.Rows[e.RowIndex].Cells["Datum"].Style.BackColor = Color.Pink;
                dgv.Rows[e.RowIndex].Cells["Tid"].Style.BackColor = Color.Pink;
            }
            else if(e.Value != null && e.Value.ToString().Trim() == "Lexi & Selma")
            {
                dgv.Rows[e.RowIndex].Cells["Hund"].Style.BackColor = Color.LightGreen;
                dgv.Rows[e.RowIndex].Cells["Vem"].Style.BackColor = Color.LightGreen;
                dgv.Rows[e.RowIndex].Cells["Vad"].Style.BackColor = Color.LightGreen;
                dgv.Rows[e.RowIndex].Cells["Datum"].Style.BackColor = Color.LightGreen;
                dgv.Rows[e.RowIndex].Cells["Tid"].Style.BackColor = Color.LightGreen;
            }
            else
            {
                dgv.Rows[e.RowIndex].Cells["Hund"].Style.BackColor = Color.White;
                dgv.Rows[e.RowIndex].Cells["Vem"].Style.BackColor = Color.White;
                dgv.Rows[e.RowIndex].Cells["Vad"].Style.BackColor = Color.White;
                dgv.Rows[e.RowIndex].Cells["Datum"].Style.BackColor = Color.White;
                dgv.Rows[e.RowIndex].Cells["Tid"].Style.BackColor = Color.White;
            }
        }

但不要像我一样手动添加名称。我希望它是自动的。

https://gyazo.com/2973603e83ead5371402498a8eb014f8 示例:如果在“ dogname1”中有一个名称,我希望颜色是蓝色,如果在“ dogname3”中有一个名称,我希望它是绿色。等等。

因此,当有人输入使用数据库插槽“ dogname1”的狗的信息时,我希望datagridview列为特定颜色。

我希望你能理解我..:s

0 个答案:

没有答案
相关问题