IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

requete Linq pour tester si un mot existe déja dans une BDD SQL [Débutant]


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Etudiant en Informatique
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Etudiant en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 6
    Points
    6
    Par défaut requete Linq pour tester si un mot existe déja dans une BDD SQL
    Bonjour a tous,

    je viens vers vous car je dois, dans le cadre de mon stage professionnel, développer une appli web. Bien que j'en soit quasiment venu a bout j'ai un problème lors de l'enregistrement de donnée de l'application vers ma BDD SQL.
    Le but de l'application est de pouvoir créer des règles via des listes déroulantes puis d'enregistrer ces dernières dans ma BDD.
    En effet je voudrais que via une requête LINQ (suggéré par mon tuteur) l'application recherche si un nom n'existe pas dans ma BDD avant d'enregistrer ladite règle. Je n'ai pas trouvé de solution sur internet alors soit j'ai mal chercher (ce qui est probable après tout l'erreur est humaine) soit je suis aveugle et je n'ai pas trouvé la solution.

    Je précise que je n'ai jamais fait de LINQ et que mon appli est en ASP.NET

    N’hésitez pas a me demander des précisions si je me suis mal exprimé

    Teclys

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Salut,

    Comment accède tu as ta base de données ? (EntityFramework, ADO.NET) ?

    Si tu fait de l'ado : En utilisant une requête paramétrée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select 1 from table where key = value;
    Avec Entity (en linq)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    db.Table.Any(t=> t. key == value);

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Etudiant en Informatique
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Etudiant en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci de ta réponse,

    pour me connecter a ma base de donnée j'utlise cette méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     private static string _ConnectionString
            {
                get
                {
                    return ConfigurationManager.ConnectionStrings["MACONNECTIONSTRING"].ConnectionString;
                }
            }

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    C'est bien du SQL Server ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ConnexionSQL = ConfigurationManager.ConnectionStrings["MACONNECTIONSTRING"].ConnectionString; 
    maConnexionSQLsrv = new SqlConnection(ConnexionSQL); 
     
    //Requete mise a jour de la table client 
    maRequete = "select 1 from table where key = @valeur"; 
     
    myCommand = new SqlCommand(maRequete, maConnexionSQLsrv); 
     
    myCommand.Parameters.Add(new SqlParameter("@valeur", SqlDbType.VarChar)); 
     
    //Ensuite exécution de la requête...
    var result = myCommand.ExecuteReader();
    Je ne sais pas si c'est la bonne méthode d'exécution...

    Peut être que ExecuteScalar est plus approprié dans ce genre de requête.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Etudiant en Informatique
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Etudiant en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    C'est bien du SQL serveur management studio r2 2008 pour être précis

    Je test tes deux solutions et je reviens sur le post te dire les résultats
    Merci de ton aide

    Teclys

    [EDIT]
    Ah et j'ai oublié de préciser qqchose :
    Ma requête dois s'effectuer lors d'un événement click d'un bouton, lors du click cette dernière dois vérifier si le nom choisit par l'utilisateur n'existe pas dans la BDD. S'il existe msg d'erreur et l'utilisateur doit retaper un nouveau nom, sinon la requête enregistre la règle dans la BDD.

    Teclys

  6. #6
    Membre averti

    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 176
    Points : 310
    Points
    310
    Par défaut
    Salut,

    Lors de la création d'un controller Web Api avec Entity Framework, VS génère automatiquement les requêtes CRUD et notamment, une méthode "Exists".

    Voici le code généré par VS :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
             private bool ObjetExists(int id)
            {
                return db.Objets.Count(e => e.Id == id) > 0;
            }

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Etudiant en Informatique
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Etudiant en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Salut Arno,

    Le problème avec la méthode exist c’est pour tester l’existence d’un fichier et non pour savoir le nom d'un élément de la base de donnée existe déjà. J’étais partit sur un File.Exist et mon maître de stage ma dit que ce n’étais pas la façon de faire et qu'il falait que je recherche du côté des requêtes LINQ

    Merci pour votre aide.
    Teclys

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBContextLinq.MyEntities.Any(a => a.MaProperty.Contains(StringValue));
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBContextLinq.MyEntities.Any(a => a.MaProperty == StringValue);
    Ou bien tu recherches un mot précis dans une phrase ?

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Etudiant en Informatique
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Etudiant en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci de ton aide

    Alors je vais détaillé un poil plus pour être sur
    En gros j'ai mon interfaces avec des listes déroulantes en dynamique, 3 zone de saisie (textbox) un grosse textbox multiligne qui reçois les valeurs dans les listes (onclick) et deux boutons (ajout annuler)
    Je veux que lors du click sur le bouton ajouter (qui comme son nom l'indique ajoute la règle et tous ses attributs dans la base de données) qu'on vérifie si la textbox tbx_RuleName vérifie si sa valeur n'est pas déjà utilisé dans la colonne "CFG_001RULNAME" de ma BDD.


    J’espère avoir été le plus clair possible

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Donc ce code-ci devrait fonctionner...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBContextLinq.MyEntities.Any(a => a.001RULNAME== tbx_RuleName.Text);

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Etudiant en Informatique
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Etudiant en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Très bien merci beaucoup pour l'aide je teste ça demain matin quand je serais au travail


    Alors j'ai tester et vu avec des collègues
    la solution est la suivante :
    Rules i= new BLL_RuleEngine().getRules().First(a => a.myRuleName == Tbx_RuleName.Text);
    J'ajoute après mes conditions (If, Else ...) et le tour est joué.

    Encore merci pour l'aide je passe le post en Résolu

    Teclys

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/03/2010, 14h03
  2. script pour vérifier si un champ existe déjà dans une BDD
    Par tomguiss dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/02/2009, 13h19
  3. Réponses: 4
    Dernier message: 01/10/2008, 08h59
  4. Réponses: 3
    Dernier message: 22/04/2006, 06h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo