Salut,

Dans un DataSet typé (xsd) se trouve une table "Ligne" contenant une colonne "NoSinueuse" (Int32).

Un Textbox contient une valeur devant remplacer la valeur de NoSinueuse.

sur le click d'un bouton j'ai codé

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
            int IntNoSinueuse = 0;
            int.TryParse(NoSinueuseTextBox.Text, out IntNoSinueuse);
            if (LigneRow.NoSinueuse != IntNoSinueuse) //Pour s'assurer de ne pas changer le RowState si la valeur ne change pas.
                LigneRow.NoSinueuse = IntNoSinueuse;
A priori cela me paraissait simple.
Pourtant, lorsque je mets "2" dans la TextBox, la IntNoSinueuse est bien égale à 2, mais la ligne LigneRow.NoSinueuse = IntNoSinueuse; génère l'erreur
Impossible d'effectuer un cast d'un objet de type 'System.Int32' en type 'System.String'.
Cela me laisse un peu perplexe, surtout que le LigneRow.NoSinueuse et le IntNoSinueuse sont en int tous les 2.

L'erreur est générée lors du passage sur le set du code ci-dessous dans le Designer.cs du DataSet
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
 
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            public int NoSinueuse {
                get {
                    try {
                        return ((int)(this[this.tableLigne.NoSinueuseColumn]));
                    }
                    catch (global::System.InvalidCastException e) {
                        throw new global::System.Data.StrongTypingException("The value for column \'NoSinueuse\' in table \'Ligne\' is DBNull.", e);
                    }
                }
                set {
                    this[this.tableLigne.NoSinueuseColumn] = value;
                }
            }
Je ne comprend vraiment pas pourquoi cette erreur est générée, et donc je ne vois pas comment résoudre ce problème.

Merci de vos z'avis z'avisés