Probs requête sql avec paramètres [Résolu]

Signaler
Messages postés
22
Date d'inscription
vendredi 10 février 2006
Statut
Membre
Dernière intervention
19 mars 2006
-
Messages postés
22
Date d'inscription
vendredi 10 février 2006
Statut
Membre
Dernière intervention
19 mars 2006
-
bonjour,

je suis vraiment frustré car je n'arrive pas à faire une requête sql avec paramètres :

voiçi une partie de mon code:


public
void deleterow(
int row)


{



this.connection=
new MySqlConnection(ConnnectionStr);



//Connection.ConnectionString = ConnnectionStr;



// On ouvre la connexion



this.connection.Open();



// string rowindex=rowindex.ToString();



// On définit la requête SELECT à exécuter


da =
new MySqlDataAdapter(MySQLCmd, connection);


MySQLCmd="DELETE FROM employes WHERE idemploye=@row";


delete=
new MySqlCommand(MySQLCmd, connection);



// On associe cette requête à la propriété SelectCommand du MySqlDataAdapter


delete.Parameters.Add (
new MySqlParameter ("@row",MySqlDbType.Int16,2));


delete.Parameters["@nom"].Value =row;


delete.ExecuteNonQuery();


}

En fait cette fonction est censé supprimer la ligne numéro row de mon datgrid (passé en paramètre dans le tube).
Le problème c'est ca ne fait rien alors que quand je remplace dans la requête sql @row par une valeur(1,2...) ca marche tré bien et il execute bien la requête.

Je ne comprend pas alors j'ai besoin de votre aide pour débloquer mon problème

3 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
Et personnellement je remplacerais ceci :

delete.Parameters.Add ( new MySqlParameter ("@row",MySqlDbType.Int16,2));
delete.Parameters["@nom"].Value =row;

par celà

MySqlParameter rowParameter = delete.Parameters.Add ( new MySqlParameter ("?row",MySqlDbType.Int16,2));
rowParameter.Value =row;

/*
coq
MVP Visual C#
*/
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
Salut,

Le connecteur MySql utilise '?', pas '@'.

...
MySQLCmd="DELETE FROM employes WHERE idemploye=?row";
delete=new MySqlCommand(MySQLCmd, connection);
// On associe cette requête à la propriété SelectCommand du MySqlDataAdapter
delete.Parameters.Add ( new MySqlParameter ("?row",MySqlDbType.Int16,2));
...

/*
coq
MVP Visual C#
*/
Messages postés
22
Date d'inscription
vendredi 10 février 2006
Statut
Membre
Dernière intervention
19 mars 2006

Merçi,ca marche!

Je bloqué depuis longtemps car je ne savais pour le "?"

Maintenant je pense arriver à faire des update et insert facilement avec des textebox...

Je voulais savoir également comment mettre à jour ma base de données (insert,delete,update) directement en effctuant des opérations sur mon datagrid et en utilisant un dataset.