Erreur de conversion

Fermé
Mervelis - 7 févr. 2020 à 09:40
yg_be Messages postés 20301 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2022 - 7 févr. 2020 à 18:43
Bonjour,
J'ai un petit souci avec mon application developpé en C# & SQL Server, les enregistrements se passe bien comme ajout de produit et suppression mais quand s'essaie de mettre à jour ou modifier un élément j'ai ce messgage d'erreur
(Conversion failed when converting the nvarchar value to data type int.)
Et si quelqu'un à une solution aider moi svp
Voici mon code utilisé et le query que j'ai utilisé pour la création de la table :
   private void Updates()
        {
            if (txtPCode.Text.Trim() == string.Empty || txtPrice.Text.Trim() == "" || txtQty.Text.Trim() == "" || txtDesc.Text == "")
            {
                MessageBox.Show("Entrez l'enregistrement suivant ...!");
                return;
            }
            try
            {
                if (MessageBox.Show("Vous êtes sûre de mettre à jour ce produit..?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    //select brand
                    string bid = "";
                    string cid = "";
                    con.Open();
                    cmd = new SqlCommand("select id from tblBrand where brand like '" + cmbBrand.Text + "'", con);
                    dr = cmd.ExecuteReader();
                    dr.Read();
                    if (dr.HasRows)
                    {
                        bid = dr[0].ToString();
                    }
                    dr.Close();
                    con.Close();

                    //select category

                    con.Open();
                    cmd = new SqlCommand("select id from tblCategory where category like '" + cmbCategory.Text + "'", con);
                    dr = cmd.ExecuteReader();
                    dr.Read();
                    if (dr.HasRows)
                    {
                        cid = dr[0].ToString();
                    }
                    dr.Close();
                    con.Close();




                    con.Open();
                    cmd = new SqlCommand("Update tblProduct set barcode=@barcode, pdesc=@pdesc,brandid=@bid,categoryid=@cid,price=@price,qty=@qty where pcode like @pcode", con);
                    cmd.Parameters.AddWithValue("@PID", txtPCode.Text);
                    cmd.Parameters.AddWithValue("@barcode", txtBarcode.Text);
                    cmd.Parameters.AddWithValue("@Pdesc", txtDesc.Text);
                    cmd.Parameters.AddWithValue("@bid", bid);
                    cmd.Parameters.AddWithValue("@cid", cid);
                    cmd.Parameters.AddWithValue("@price",txtPrice.Text);
                    cmd.Parameters.AddWithValue("@qty", txtQty.Text);
                    cmd.ExecuteNonQuery();
                    con.Close();
                    MessageBox.Show("mMise à jour effectuée avec succès");
                    clear();
                    flist.LoadRecord();
                    this.Dispose();
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                con.Close();
            }
        }


 create table tblProduct
(
pcode int primary key,
barcode nvarchar(50),
pdesc nvarchar(MAX),
brandid int,
categoryid int,
price decimal(18,2),
qty int
)


Merci d'avence pour votre aide

Configuration: Windows / Firefox 72.0
A voir également:

6 réponses

yg_be Messages postés 20301 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2022 1 225
7 févr. 2020 à 10:04
bonjour, à quelle ligne l'erreur se produit-elle?
0
Merci pour votre intervention
C'est dans toutes les lignes
0
yg_be Messages postés 20301 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2022 1 225
7 févr. 2020 à 10:42
à quelle ligne de code?
0
Mervelis > yg_be Messages postés 20301 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2022
7 févr. 2020 à 10:45
C'est à la ligne de la mise à jour
0
Whismeril Messages postés 17818 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2022 862
7 févr. 2020 à 10:50
Bonjour Mervlis.
Si yg_be insiste c’est par ce que ça saute pas au yeux.

Peux apporter une réponse claire à la question « quelle ligne de code génère l’erreur? ».

Cette réponse claire ne peut avoir que 2 formes:
  • tu la copies colles dans ta réponse
  • tu indiques le numéro de la ligne tel qu’il apparaît dans le forum, pas dans Visual Studio

0
Whismeril je ne sais pas comment répondre a cette question mon grand car je ne sais pas d'ou vient cette erreur puisque quand j'essaie de modifier les zones des textes une après l'autre ça ne marche pas
0
yg_be Messages postés 20301 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2022 1 225 > Mervelis
7 févr. 2020 à 11:05
quand le problème se produit-il? pendant l'exécution du code?
0
Mervelis > yg_be Messages postés 20301 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2022
7 févr. 2020 à 11:06
Oui
0
Whismeril Messages postés 17818 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2022 862
7 févr. 2020 à 11:10
Visual ne s’arrête pas sur une ligne?
0
Non, rien qu'une fenêtre qui apparaît avec ce message (Conversion failed when converting the nvarchar value to data type int.)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 17818 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2022 862
7 févr. 2020 à 11:47
Dans ce cas, tu mets un point d’arrêt au début de la méthode et tu exécutes en pas à pas
0
yg_be Messages postés 20301 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2022 1 225
7 févr. 2020 à 18:34
ou faire de plus petits try/catch, ou récupérer plus d'info de l'exception?
0
yg_be Messages postés 20301 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2022 1 225
7 févr. 2020 à 18:43
il me semble que deux paramétres de la ligne 43 ne sont pas pris en compte dans les AddWithValue: @pdesc et @pcode.
ne faudrait-il pas commencer par corriger cela?
0