使用数据 table 防止 gridcontrol devexpress 中的重复值

Prevent duplicate value in gridcontrol devexpress using data table

填写 txtNametxtAddress 并按 btnSubmit 将为 GridControl DevExpress 添加价值。

这是代码:

DataTable dt;

private void XtraForm1_Load(object sender, EventArgs e)
{
    dt = new DataTable();
    DataColumn dc1 = new DataColumn("NAME");
    DataColumn dc2 = new DataColumn("ADDRESS");
    dt.Columns.Add(dc1);
    dt.Columns.Add(dc2);
    DataRow dr1 = dt.NewRow();
    gridControl1.DataSource = dt;
}

private void btnSubmit_Click(object sender, EventArgs e)
{
    DataRow dr1 = dt.NewRow();
    dr1[0] = txtName.Text;
    dr1[1] = txtAddress.Text;
    dt.Rows.Add(dr1);
    gridControl1.DataSource = dt;
}

上面的代码工作正常。

当数据存在于 GridControl 中时,如何防止重复值?我想要在按下 btnSubmit 后显示重复值的警报/消息框。

您可以使用 DataTable.Select 方法查找 DataTable 中存在的行。如果没有行,那么你可以添加新行,否则你可以显示消息。
这是示例:

private void btnSubmit_Click(object sender, EventArgs e)
{
    string name = txtName.Text;
    string address = txtAddress.Text;

    var rows = dt.Select(string.Format("NAME = '{0}' AND ADDRESS = '{1}'", name, address));

    if (rows.Length == 0)
    {
        DataRow dr1 = dt.NewRow();
        dr1[0] = name;
        dr1[1] = address;
        dt.Rows.Add(dr1);
    }    
    else
        MessageBox.Show("Some message.");        
}