C# 在gridview中访问单元格

C# 在gridview中访问单元格,c#,sql,winforms,gridview,datagridview,C#,Sql,Winforms,Gridview,Datagridview,上周,我开始尝试使用Winforms自动化一些报告。我不喜欢这种转变(对你们中的一些人来说可能很简单) 我当前正在显示使用Oracle SQL Developer创建的SQL视图中的数据。我通过使用DataGridView任务选择表并显示它来访问数据(这似乎是最简单的方法) 所有数据都显示良好。但是,我现在想访问表中的单元格。我希望能够根据单元格的值改变单元格的颜色,并在需要时提取一些数据 为了访问数据并突出显示行,我希望这样做 protected void MyGridView_RowData

上周,我开始尝试使用Winforms自动化一些报告。我不喜欢这种转变(对你们中的一些人来说可能很简单)

我当前正在显示使用Oracle SQL Developer创建的SQL视图中的数据。我通过使用DataGridView任务选择表并显示它来访问数据(这似乎是最简单的方法)

所有数据都显示良好。但是,我现在想访问表中的单元格。我希望能够根据单元格的值改变单元格的颜色,并在需要时提取一些数据

为了访问数据并突出显示行,我希望这样做

protected void MyGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        int theValue = Convert.ToInt32(e.Row.Cells[0].Text);

            if (theValue>0)
                e.Row.Cells[0].BackColor = System.Drawing.Color.Red
    }
}
它不起作用,因为事件未触发。我想我应该将数据绑定到gridview,但我已经通过设计器加载了所有数据。这就是问题所在吗?我自己也不知道如何编写代码,我以前试过,但它不稳定


此外,当我试图通过设计器更改数据库的SQL查询时,它不起作用。我想以这种速度我会失去理智的

您需要像这样在DataGridView上使用CellFormatting事件

private void MyGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if ((int)MyGridView.Rows[e.RowIndex].Cells[0].Value > 30)
            {
                e.CellStyle.BackColor = System.Drawing.Color.Red;
                e.CellStyle.ForeColor = System.Drawing.Color.White;
            }
        }

谢谢你的回复。
MyGridView
上的
int
强制转换无效,因此我将该部分更改为:
string val=datagridviewmantom_1.Rows[e.RowIndex].Cells[I].Value.ToString();int numVal=Convert.ToInt32(val);如果(numVal==0){//do something}
那么你给了我答案,所以我非常感激!谢谢!:)