2015-11-07 2 views
0

Я работаю с моим приложением windows C#, и это первый раз, когда я использую tdbgrid (component1), теперь я хочу, чтобы пользователи не могли вводить дублируемое значение после проверки его из базы данных, Ниже приведен код, Я использовать его в (BeforeColUpdate) Событие:предотвратить дубликаты записей в C1TrueDBGrid

bool ExitValue = false; 
private void C1TrueDBGrid_BeforeColUpdate(object sender, C1.Win.C1TrueDBGrid.BeforeColUpdateEventArgs e) 
{ 
    if (e.Column.Name == "Groups Code") 
    { 
     for (int currentRow = 0; currentRow < this.C1TrueDBGrid.Rows.Count - 1;currentRow++) 
     { 
      string rowToCompare = this.C1TrueDBGrid.Splits[0].DisplayColumns[C1TrueDBGrid.Col].DataColumn.CellValue(currentRow).ToString(); 
      for (int otherRow = currentRow+1 ; otherRow < this.C1TrueDBGrid.Rows.Count; otherRow++) 
      { 
       bool DuplicatedRow = true; 
       string Row = this.C1TrueDBGrid.Splits[0].DisplayColumns[C1TrueDBGrid.Col].DataColumn.CellValue(otherRow).ToString(); 
       if (Row!=rowToCompare) 
       { 
        ExitValue = false; 
        break; 
       } 
       if (DuplicatedRow) 
       { 
        C1TrueDBGrid.Splits[0].DisplayColumns[tgdGroupsUsers.Col].DataColumn.Value = DBNull.Value; 
        MessageBox.Show("Sorry: but this item(s) is already Exists ", "Error Info", MessageBoxButtons.OK, MessageBoxIcon.Information); 
        ExitValue = true; 
        e.Cancel = true; 
       } 
      } 
     }   
    } 
    else 
    { 
     //Cleare Feilds 
     C1TrueDBGrid.Splits[0].DisplayColumns[C1TrueDBGrid.Col].DataColumn.Value = null; 
     e.Cancel = true; 
    } 
} 

если не duplictad Ниже приведен код, которым IAM использовать его в (AfterColUpdate) Событие:

private void C1TrueDBGrid_AfterColUpdate(object sender, C1.Win.C1TrueDBGrid.ColEventArgs e) 
{ 
    if (!ExitValue) 
    { 
     int indexRow = this.C1TrueDBGrid.RowBookmark(this.C1TrueDBGrid.Row); 
     this.C1TrueDBGrid[indexRow, 0] = CSystemUsers.GroupsCode; 
     this.C1TrueDBGrid[indexRow, 0] = CSystemUsers.EngName; 
    } 
} 

заранее спасибо ...

+0

пожалуйста, форматировать код – Backs

ответ

0

ComponentOne мне ответить на вопрос:

private void c1TrueDBGrid1_BeforeColUpdate(object sender, C1.Win.C1TrueDBGrid.BeforeColUpdateEventArgs e) 
{ 
    if (e.ColIndex == 1) 
    { 
     for (int i = 0; i < c1TrueDBGrid1.RowCount; i++) 
     { 
     if (c1TrueDBGrid1.Editor.Text == c1TrueDBGrid1[i, e.ColIndex].ToString()) 
     { 
      MessageBox.Show("Sorry: but this item(s) already Exists", "Error Info", MessageBoxButtons.OK, MessageBoxIcon.Information); 
      e.Cancel = true; 
     } 
    } 
} 
} 

ссылка: http://our.componentone.com/groups/topic/how-do-i-prevent-duplicate-entries-in-c1truedbgrid/ надеюсь, что это помогает кто-то еще в будущем: