begin process at 2012 02 10 22:20:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Base de données

 > 

Access

 > 

requête sur db access avec plusieurs paramètres


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

requête sur db access avec plusieurs paramètres

mardi 7 avril 2009 à 15:36:55 | requête sur db access avec plusieurs paramètres

survcopt

Membre Club
Bonjour,
J'ai une db access contenant une table "Contact" avec une série de champs : Nom Prénom Date ...
Je voudrais adresser une requête (avec comme filtre le nom le prénom et la date) qui me renverrait un bool m'indiquant si cette personne existe déjà dans la base de donnée.
Je me connecte à la base
             string DataBase = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Application.StartupPath + "\\data\\client.mdb";
                Conn.ConnectionString = DataBase;
                Conn.Open();

et c'est après que je pêche car je ne connais pas les termes pour créer la string de ma requête.

Merci pour votre aide : un tuto ou un bout de code.

www.survey-copter.com
mardi 7 avril 2009 à 16:42:11 | Re : requête sur db access avec plusieurs paramètres

krimog

Administrateur CodeS-SourceS
Salut

Utilise SqlCommand, insère ta requête SQL dedans et met "Conn" dans la propriété "Connection".
Ensuite, SqlDataReader reader = commande.ExecuteReader();
if(reader.HasRows)
{
    // là, il y a un enregistrement (ou plus)
}else{
    // là il n'y en a pas
}

Si tu n'es pas très familier avec le SQL, voici une requête simple :
"SELECT * FROM Contact WHERE nom = '"+nom+"' AND prenom = '"+prenom+"' AND date = "+date;
Attention que le SQL dans Access n'est pas parfaitement standard. Teste d'abord ta requête directement dans Access.

(et comme je le disais, il s'agit d'une requête simple, normalement, on utilise des requêtes paramétrées)

Krimog :
while (!succeed = try()) ;

mercredi 8 avril 2009 à 10:09:06 | Re : requête sur db access avec plusieurs paramètres

survcopt

Membre Club
Merci pour tes indications j'ai fait comme ça :
using System.Data.OleDb;
...
                string DataBase = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Application.StartupPath + "\\data\\client.mdb";
                Conn.ConnectionString = DataBase;
                Conn.Open();

            string SqlSearch = "SELECT * FROM Contact WHERE nom = '" + TxtNom.Text + "' AND prenom = '" + TxtPrenom.Text + "' AND date = " + TxtDateAnniv.Text;

            OleDbCommand cmd = new OleDbCommand(SqlSearch, Conn);
            OleDbDataReader reader = cmd.ExecuteReader();
            if (reader.HasRows)
            {
                // là, il y a un enregistrement (ou plus)
                reponse = true;
            }
            else
            {
                // là il n'y en a pas
                reponse = false;
            }
           
            Conn.Close();

avec comme paramètre
TxtNom.Text  =  "BELMONDO";
TxtPrenom.Text = "Jean Paul";
TxtDateAnniv.Text = "01/01/1901";

et dans acces j'ai ça


Contact
Contact
NomPrenomAdresseMailDateNaissanceDateAdhesionBadge
1BELMONDOJean PauliciJP@oui.com01/01/190101/01/190219011


Mais le code me génère une erreur au moment de la déclaration de reader il me dit

Une exception de première chance de type 'System.Data.OleDb.OleDbException' s'est produite dans System.Data.dll
System.Data.OleDb.OleDbException: Aucune valeur donnée pour un ou plusieurs des paramètres requis.
   à System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
   à System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
   à System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   à System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
   à System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   à System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
   à System.Data.OleDb.OleDbCommand.ExecuteReader()

J'ai du oublié quelque chose !!!
Merci

www.survey-copter.com
mercredi 8 avril 2009 à 11:50:27 | Re : requête sur db access avec plusieurs paramètres

krimog

Administrateur CodeS-SourceS
Tu as vérifié que ton string de requête est EXACTEMENT le même que sous access ? (n'exécute pas ta requête dans ton programme, affiche-la et copie-colle dans access).

Si le problème n'apparaît pas sur Access, c'est très bizarre. Essaie de modifier ta requête en ajoutant ou enlevant des champs dans la condition... mais je ne garantis vraiment rien.

Krimog :
while (!(succeed = try())) ;

mercredi 8 avril 2009 à 13:28:15 | Re : requête sur db access avec plusieurs paramètres

survcopt

Membre Club
Je ne sais pas utiliser access
  BOUUUUUUUUH!!!!!

www.survey-copter.com
mercredi 8 avril 2009 à 13:49:41 | Re : requête sur db access avec plusieurs paramètres

survcopt

Membre Club
J'ai tapé ça sous access dans une requête

SELECT FROM Contact WHERE Contact.Nom = '"BELMONDO"' AND  Contact.Prenom = '"Jean Paul"' AND Contact.DateNaissance = "01/01/1901"

il me dit :
"Dans l'instruction SELECT,un mot réservé ou un argument est mal othographié ou absent,ou la ponctuation est incorrecte"

Une idée ?

Au passage l'aide access est bien faite elle me répond :
Dans l'instruction SELECT, un mot réservé ou un argument est mal orthographié ou absent, ou la ponctuation est incorrecte. (Erreur 3141)

Vous avez saisi une instruction SQL ayant une instruction SELECT incorrecte.
Causes possibles :
Un nom de mot réservé ou d'argument est mal orthographié ou manquant.
La ponctuation est incorrecte.



www.survey-copter.com
mercredi 8 avril 2009 à 13:55:06 | Re : requête sur db access avec plusieurs paramètres

survcopt

Membre Club
Avec l'aide Access j'obtiens ça
SELECT Contact.Nom,Contact.Prenom,Contact.DateNaissance
FROM Contact
WHERE Contact.Nom = '"BELMONDO"' AND  Contact.Prenom = '"Jean Paul"' AND Contact.DateNaissance = "01/01/1901"

et cette erreur
Type de données incompatible dans l'expression du critère
???

www.survey-copter.com
mercredi 8 avril 2009 à 14:18:19 | Re : requête sur db access avec plusieurs paramètres

krimog

Administrateur CodeS-SourceS
SELECT Contact.Nom,Contact.Prenom,Contact.DateNaissance
FROM Contact
WHERE Contact.Nom = '"BELMONDO"' AND  Contact.Prenom = '"Jean Paul"' AND Contact.DateNaissance = "01/01/1901"

=>

SELECT Contact.Nom,Contact.Prenom,Contact.DateNaissance
FROM Contact
WHERE Contact.Nom = 'BELMONDO' AND  Contact.Prenom = 'Jean Paul' AND Contact.DateNaissance = 01/01/1901

Vérifier cependant qu'il ne faut pas mettre des ' autour de la date

Krimog :
while (!(succeed = try())) ;

mercredi 8 avril 2009 à 14:45:56 | Re : requête sur db access avec plusieurs paramètres

survcopt

Membre Club
avec ton exemple Il m'ouvre une table vide et si je mets les ' pour la date il me met une erreur

J'ai refais un essai en virant Contact.DateNaissance et le AND Contact.DateNaissance = 01/01/1901
et la ça marche il trouve Jean Paul il s'agit donc du format de la date qui n'est pas bon .
mais le plus important dans mon filtre c'est la date donc je continue .

meric

www.survey-copter.com
mercredi 8 avril 2009 à 15:19:32 | Re : requête sur db access avec plusieurs paramètres

krimog

Administrateur CodeS-SourceS
Essaie avec une date du genre : YYYY-MM-DD hh:mm:ss (1901-12-31 00:00:00)

Krimog :
while (!(succeed = try())) ;


1 2

Cette discussion est classée dans : access, db, prénom, requête, paramètres


Répondre à ce message

Sujets en rapport avec ce message

Access et les paramètres régionaux [ par facdaar ] J'ai un problème lors de la mise à jour d'un dataset dans une base access, avec des nombres décimaux. Voilà, quand je configure dans Windows que le sy PB : Exécution requête Access en C# (fonctions dans module) [ par jopop ] Bonjour tout le monde, Pour bien expliqué mon problème je vais commencer par un petit topo : J'ai une base Access avec :  - une tablePERSONNE (id, nom Appel de requete ACCESS [ par Lovejambon ] Bonjour!!J'ai un petit soucis avec ACCESS.Je souhaite exécuter une requête qui est enregistrée dans ma base ACCESS mais je n'arrive pas à le faire ave format de date dans un datagrid [ par Kalypswoo ] Bonjour tout le monde, voila alors j'ai une requête d'insertion contenant une date avec une bbd access.J'affiche les résultats dans un datagrid le pro Requête sur base de données Access [ par nerix27 ] Bonjour à tous,Je voudrais effectuer des requêtes sur une base Access, mais la seule que j'arrive à effectuer est "SELECT * FROM nom_table".Que je rem [DEPLACE] export requête Access vers Excel [ par meldja976 ] Bonjour, Je sais que le sujet est récurrent mais malgré toutes les ressources que j'ai pu trouver sur le Net, je n'y suis toujours pas arrivé. J'ai u Access booleen et requête [ par thorgal1612 ] Bonjour,Dans ma base Access j'ai créé une table avec un champ booléen (True/False). En C#, j'ai un dataset et un tableadapter dans lequel je veux crée Suppression erreur "violation de clé" ACCESS 2007 [ par tyrmea ] Bonjour, Je suis novice sur le sujet et cela fait 3 jours que je cherche en vain une solution à mon problème. Exposé des faits: J'ai créé une base ac accès base de donnés Access [ par omarF ] Bonjour, J'arrive pas à me connecter sur ma base de donnée ACCESS, voici le message d'erreur : le fournisseur "microsoft.jet.oledb.4.0" n'est pas in lier silverlight a une base de donnee access [ par lamylamya12 ] Bonjour, en fait je voulais vous demandez si il etait possible de lier une base de donnees access avec une application silverlight, je voudrais l'util


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales