Erreur de conversion
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 :
Merci d'avence pour votre aide
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
6 réponses
-
Contributeurbonjour, à quelle ligne l'erreur se produit-elle?
-
Merci pour votre intervention
C'est dans toutes les lignes-
-
@yg_beC'est à la ligne de la mise à jour
-
-
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
-
Visual ne s’arrête pas sur une ligne?
-
Dans ce cas, tu mets un point d’arrêt au début de la méthode et tu exécutes en pas à pas
-
Contributeuril 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?