因此,我有两个名为“ Phone1”和“ Phone2”的列的DataGridView。

问题是当Phone1为空时,可能是Phone2中有一个电话号码。如何在C#中检查Phone1是否为空,但如果Phone2不为空,则Phone2中的文本将转到Phone1?

假定以下输入,第二行和第三行中的Phone1没有值:

┌───────────┬───────────┐
│ Phone1    │ Phone2    │
├───────────┼───────────┤
│ 1111111   │ 2222222   │
│           │ 3333333   │
│           │ 4444444   │
│ 5555555   │           │
└───────────┴───────────┘


这是预期的输出,Phone2的值已显示为后备:

┌───────────┬───────────┐
│ Phone1    │ Phone2    │
├───────────┼───────────┤
│ 1111111   │ 2222222   │
│ 3333333   │ 3333333   │
│ 4444444   │ 4444444   │
│ 5555555   │           │
└───────────┴───────────┘


那么,如果第一列为空,我可以在第一列中显示第二列的值作为后备吗?

最佳答案

如果这是winforms,则像这样循环遍历DataGridView的行:

编辑:根据Uwe Keim DBNull.Value也应检查。

for(int i = 0; i< DataGridView.Rows.Count; i++)
{
    DataGridViewCell colPhone1 = DataGridView.Rows[i].Cells["Phone1"];
    DataGridViewCell colPhone2 = DataGridView.Rows[i].Cells["Phone2"];
    if(colPhone1.Value == null || colPhone1.Value == DBNull.Value)
    {
        colPhone1.Value = colPhone2.Value;

    }
    else if(colPhone2.Value == null || colPhone2.Value == DBNull.Value)
    {
        colPhone2.Value = colPhone1.Value;
    }
}

关于c# - 在第一列中显示第二列的值(如果第一列为空,则作为备用),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57704743/

10-11 06:03