如何更改特定的 datagridview 单元格值?

how can i change specific datagridview cell value?

我有来自数据库的数据,但数据库记录的一个属性是位(布尔值)。 例如

name, surname, date, itHave
A      B     2020    1//
C      D     2021    0

表单应用端,数据正常。我可以看到记录。但我想将 1 和 0 更改为是或否。

我试过了 number(datagridview的个数)

for( i=0; i< number; i++){

   if (dataGridView1.Rows[i].Cells[3].Value.ToString() =="1"){
       MessageBox.Show("Test");
       dataGridView1.Rows[i].Cells[3].Value = "Yes";
   }

}

MessageBox.Show("测试"); // 这是 运行 但它并没有发生。

我该如何解决?

您的示例看起来不错并且有效。我在“It Have”列中创建了初始 DataGridView 和一些 0-1 值:

然后使用您的示例(通过添加一个三元编辑了一点):

for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
    DataGridViewCell cell = dataGridView1.Rows[i].Cells[3];
    cell.Value = cell.Value.ToString() == "1" ? "Yes" : "No";
}

并获得 Yes/No 而不是 1-0

请注意,您的 MessageBox.Show("Test"); 会阻止代码执行,直到您关闭它。

用人类可读的文本制作你的数据库数据,你可以在 LINQ 中使用匿名类型:

var items = mydbitems.Select(x => new 
                                  {
                                     Name = x.name,
                                     Surname = x.surname,
                                     Date = x.date,
                                     itHave = x.itHave == 1 ? "yes" : "no"
                                  };
datagridview.DataSource = items.ToList();