Bonjour,

J'ai un petit soucis de gestion de valeur considérée comme identique dans un DataTable.
Dans mon code j'ai ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
    /// <summary>
    /// The table which contains the value column.
    /// </summary>
    private DataTable entriesTable;
 
    /// <summary>
    /// The column which contains all entries.
    /// </summary>
    private DataColumn entriesColumn;
Cette table lorsque je la spécifie, je demande à ce que les doublons ne soient pas autorisés :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
private void InitializeComponent()
{
  this.entriesTable = new DataTable();
  this.entriesColumn = new DataColumn();
  this.entriesColumn.DataType = typeof(string);
  this.entriesColumn.ColumnName = "entries";
  this.entriesColumn.ReadOnly = false;
  this.entriesTable.Columns.Add(this.entriesColumn);
 
  this.entriesColumn.Unique = true;
}
Voici la methode pour ajouter un élément dans ma table :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
private void AddEntry(string entry)
    {
      DataRow row = this.entriesTable.NewRow();
      row[this.entriesColumn.ColumnName] = entry;
 
      try
      {
        this.entriesTable.Rows.Add(row);
      }
      catch (ConstraintException c)
      {
          /* impossible to add the new row because it break a constraint. */
      }
    }
Tout fonctionne parfaitement , sauf pour le cas limite qui suit :
En effet d'un point de vue fonctionnel dans mon application les 2 mots suivants sont considérés comme étant bien différents :
mot 1:
prieß
mot 2:
Priess
Or pour ma table ils sont identiques... Ce qui me pose problème car je ne vois que 2 solutions à ce problème :
La première serait de surcharger mes éléments pour changer la méthode contains de la DataRowCollection associée... ce qui je trouve est assez lourd au final...
La seconde serait de réimplémenter une méthode contains dans mon code et de tester le contenu de l'entry dans mon AddEntry ... mais j'ai bien peur que ce ne soit pas super optimisé...


Avez vous d'autres idées ?
d'avance,

anne