Requete base Access OLEDBConnection

Résolu
Signaler
Messages postés
63
Date d'inscription
dimanche 8 janvier 2006
Statut
Membre
Dernière intervention
16 mai 2007
-
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
-
Slt a tous, j'ia un petit pb avec mes requete cad que mes requetes SELECT et INSERT marche mais pas ma requete DELETE
je n'arrive pas a savoir pourquoi si quelqun a une idée merci de la partager
mon code :



// établie une connexion sur la base Access
public
bool Open()
{

try
{

this.oConn =
new
OleDbConnection(
this.connStr);

this.oConn.Open();

return
true;
}

catch
{

return
false;
}
}


public void Delete(string _UID)
{string req "DELETE * FROM CS_CARD WHERE CD_CSN '" + CD_CSN + "';";
this.Execute(req);req "DELETE * FROM CS_ACCOUNT WHERE AT_CSN '" + CD_CSN + "';";
this.Execute(req);
this
.Close();
}


// execute une requête SQL sur la base Access
public
bool Execute(
string ordre)
{

try
{

this.oCmd =
new
OleDbCommand(ordre,
this.oConn);

this.rdr =
this.oCmd.ExecuteReader();

return
true;
}

catch
{

return
false;
}
}

Merci d'avance
A voir également:

5 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
98
Salut,

Pour une requête DELETE on se sert de la méthode ExecuteNonQuery, pas ExecuteReader.

/*
coq
MVP Visual C#
*/
Messages postés
63
Date d'inscription
dimanche 8 janvier 2006
Statut
Membre
Dernière intervention
16 mai 2007

ah oui, j'oubliai la requete quand je l'execute sous Access elle fonctionne correctement sans aucun probleme

et l'endroit où elle bloque c'est dans la fonction Execute quand elle veut executer cette ligne : this.rdr =
this.oCmd.ExecuteReader();

elle passe dans le catch
Messages postés
63
Date d'inscription
dimanche 8 janvier 2006
Statut
Membre
Dernière intervention
16 mai 2007

this.oCmd =
new
OleDbCommand(ordre,
this.oConn);

this.rdr =
this.oCmd.ExecuteNonQuery();

return
true;

cela me retourne une erreur : Cannot implicitly convert type 'int' to 'System.Data.OleDb.OleDbDataReader' sur la ligne du this.rdr = this.oCmd.ExecuteNonQuery();

pourrait tu maider sur ce probleme merci
Messages postés
63
Date d'inscription
dimanche 8 janvier 2006
Statut
Membre
Dernière intervention
16 mai 2007

private
OleDbDataReader rdr;
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
Salut,
Comme le dit l'erreur, ExecuteNonQuery() te retourne un int, pas un OleDbDataReader



Mx
MVP C#