Probs requête sql avec paramètres

Résolu
patou1007 Messages postés 22 Date d'inscription vendredi 10 février 2006 Statut Membre Dernière intervention 19 mars 2006 - 5 mars 2006 à 14:41
patou1007 Messages postés 22 Date d'inscription vendredi 10 février 2006 Statut Membre Dernière intervention 19 mars 2006 - 5 mars 2006 à 15:11
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

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 mars 2006 à 14:52
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#
*/
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 mars 2006 à 14:47
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#
*/
0
patou1007 Messages postés 22 Date d'inscription vendredi 10 février 2006 Statut Membre Dernière intervention 19 mars 2006
5 mars 2006 à 15:11
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.
0
Rejoignez-nous