我试着搜索论坛来找到答案,但它们似乎都检查整数值,而不是字符串。 我有一个C#表单从SQL表中提取数据值并在datagridview上显示它们。我希望检查字符串值的列标记为“类型”,并且是我的数据表中的第三列。我希望突出显示第三栏中包含“药房”一词的所有行。如何更改基于字符串值的datagridview行颜色
private void invTableDataGridView_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
foreach (DataGridViewRow row in invTableDataGridView.Rows)
{
if (row.Cells[2].Value.ToString() == "Pharmacy")
{
invTableDataGridView.DefaultCellStyle.BackColor = Color.Red;
}
}
}
当我使用此代码运行程序,没有什么变化,甚至当我进行应该触发databindingcomplete事件动作。令人沮丧的,如果我改变row.Cells [2] row.Cells [3]其中I具有整数值,并键入
if (row.Cells[3].Value.ToString() == "0")
代码工作,但对于错列。它似乎只适用于整数,但我希望它能与字符串一起工作。我该怎么做呢?
编辑:是的,抱歉,我应该保持一致。我想比较的价值是“药房”,大写。
编辑2:好吧,我发现它为什么给我这么多麻烦。列[2]中的值由组合框添加,出于某种原因,它总是在该单词后添加两个空格,即使它不显示字符串集合编辑器中的空格。
==必须.Equals( “药”) – Cageman
@Cageman 我试图更换如果格式控制(row.Cells [2] .Value.ToString() ==“药房”)与if(row.Cells [2] .Value.ToString()。Equals(“药房”)),但它没有奏效。这是否意味着别的地方有什么错? – anesthetic
也在工作的字符串。在你写的问题中,价值必须是“药房”,但是在与“药房”比较的代码中。如果数据包含小写版本,则比较将返回false。 – Fabio