DataGridView中的脱机搜索绑定到DataTable并执行添加或更新

时间:2015-08-29 12:24:42

标签: c# datagridview

我想在绑定到DataTable的空白DataGridView中添加或更新行。

我的DataTable有3列FName,LName,Number。

此外,我还有3个TextBox用于输入这些列的数据和一个AddOrUpdate按钮。

添加或更新操作应遵循此规则(伪代码):

If the item has been added before and already exists in DataTable Then
    Update the value of 'Number' Column .
ELSE 
    Add new row using given values.

这是我的代码:

dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
    if ((row.Cells[1].Value.ToString().Equals(txt_Name.Text)) && (row.Cells[2].Value.ToString().Equals(txt_Family.Text)))
    {           
        row.Cells[3].Value = txt_Number.Text;
        dataGridView1.DataSource = dt;          
        break;
    }
    else
    {           
        dt.Rows.Add(txt_Code.Text, txt_Name.Text, txt_Family.Text, txt_Number.Text);
        dataGridView1.DataSource = dt;
        break;          
    }
}

使用我的代码,有两个问题:

  1. 下面的代码无法添加第一行(无错误)。 (第一行应该由另一个按钮或默认值添加。)
  2. 比较找到一个类似于正在添加的行的现有行,只播放DataGridView的第一行。
  3. 如何在DatTable中搜索并执行添加或更新?

1 个答案:

答案 0 :(得分:0)

我在看这个(没有DataTable):

try
{
    for (int i = 0; i < dataGridView1.RowCount; i++)
    {
        if (dataGridView1.Rows[i].Cells[0].Value.ToString() == txt_FName.Text)
        {
            dataGridView1.Rows[i].Cells[2].Value = [any proccess] ; // Update Row
            return;
        }
    }
}
catch(Exception ex)
{
    MessageBox.Show(ex.Message);
}
dataGridView1.Rows.Add(txt_FName.Text, txt_LName.Text, txt_Number.Text); // New Row