Pblème de connexion à Access

Signaler
Messages postés
1
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
22 novembre 2005
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Hello, j'ai un petit souci, je n'arrive pas à executer une requête SQL sur une BDD Access. Voici mon code :



class Connexion

{

private BDD_Access Db_Access;



public Connexion()

{


Db_Access = new
BDD_Access();


}



public Boolean Connect(String Login, String Mdp)

{

Boolean Droits_Ok;


Droits_Ok = Db_Access.ExeSQL("Select Access from Droits where
Login=""+Login+"" and Mdp=""+Mdp+""");

return Droits_Ok;

}

}



class BDD_Access

{

private OleDbConnection DbSource;

private OleDbCommand SQLQuery;



public BDD_Access()

{


DbSource = new OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0;Data
Source=db1.mdb");



DbSource.Open();


}



public Boolean ExeSQL(String Query)


{


SQLQuery = new OleDbCommand(Query,DbSource);

MessageBox.Show(SQLQuery.CommandText.ToString());

MessageBox.Show(SQLQuery.Connection.State.ToString());

SQLQuery.Connection = DbSource;

SQLQuery.CommandText = Query;



OleDbDataReader DbReader = SQLQuery.ExecuteReader(); ->>> Ca bloque ici !!!! MSG : "Aucune valeur donnée pour un ou plusieurs des paramètres requis."

if (DbReader.Read())

{

//DbReader.Close();

//DbSource.Close();

return true;

}

else

return false;

}

}



Dans mon Main, je crée un objet Connexion, puis je lui fais appeller la fonction Connect.

Il m'affiche bien que la connexion est ouverte, mais il bloque à l'execution de la requete. Pkoi??

Merci de votre aide.

crepin.antoine@netcourrier.com

4 réponses

Messages postés
28
Date d'inscription
dimanche 24 août 2003
Statut
Membre
Dernière intervention
28 septembre 2009

Salut,



qu'est ce que t'affiche ta ligne :



MessageBox.Show(SQLQuery.CommandText.ToString());



lorsque tu as ton erreur ???

CrougniMan
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
Mais pourquoi un appel à ToString sur un élément qui est déjà une chaine de caractères ?

/*
coq
MVP Visual C#
*/
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
A bencher le temps de resinstanciation d'une string...

sinon, utilises plutot les String.Format


<HR>
string rq String.Format("SELECT Access FROM Droits WHERE Login '{0}' and mdp = '{1}'", Login, Mdp);
Droits_Ok = Db_Access.ExeSQL(rq);


<HR>
L'erreur qu'il te donne, c'est parce que ta requete est mal formée, et qu'il attend des parametres.

Et n'oublies pas de fermer ta connexion

Mx
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
Ou directement les OleDbParameter :-)

/*
coq
MVP Visual C#
*/