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