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

Discussion :

QLineEdit et SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 72
    Par défaut QLineEdit et SQL
    Bonjour !!!
    Je veux faire un affichage des valeurs provenant d'une base SQL Server sur un QlineEdit.
    J'essaye de faire de cette manière mais il n'y a rien comme résultat (champ lineEdit vide) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     QString sQuery = QString("SELECT  Matricule FROM Projet.dbo.Produit WHERE Nom='%1' ").arg(ui->comboBox->currentText());
     
               QSqlQuery query;
               query.exec( sQuery );
     
                QString name = query.value(0).toString();
     
                 ui->lineEdit_3->setText(name);
     
    }

    Y-a-t-il une solution ? Merci d'avance

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 127
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Avant de faire le setText(), faites un qDebug() << name;. Si rien ne s'affiche dans la console, alors c'est que votre requête ne fonctionne pas, tout simplement (du moins, pas comme vous le pensez).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 72
    Par défaut
    Salut,
    J'ai trouvé une solution qui marche parfaitement pour l'affichage mais lorsque je change la valeur de ComboBox, la valeur de lineEdit reste le meme.
    voilà le code de cette solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    this->model = new QSqlQueryModel();
               model->setQuery("SELECT  Nom FROM Projet.dbo.Produit");
               ui->comboBox->setModel(model);
     
     
               QSqlQuery query;
               query.prepare("SELECT  Matricule FROM Projet.dbo.Produit WHERE Nom=:nom");
               query.bindValue(":nom", ui->comboBox->currentText());
               if (query.exec() && query.next()) {
                   ui->lineEdit_3->setText(query.value(0).toString());
               }
    Pour info, dans ma base chaque 'nom' (affiché dans comboBox) correspond à un seul id (affiché dans une lineEdit).
    Y-a-t-il une méthode pour que la valeur de lineEdit change lorsque celle de comboBox est changée? Merci d'avance

  4. #4
    Membre chevronné Avatar de hariman
    Homme Profil pro
    Développeur Java, Android
    Inscrit en
    Janvier 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Java, Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 200
    Par défaut
    Bonjour,

    Il faudrait que tu exécute la requête dans un slot connecté au signal currentIndexChanged() de ton ComboBox

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 72
    Par défaut
    Merci pour votre réponse. Je ne suis pas vraiment doué en programmation et c'est mon premier programme en Qt. Voila j'ai essayé de faire comme vous me l'avez dit mais ça n'a rien donné.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    this->model = new QSqlQueryModel();
               model->setQuery("SELECT  Nom FROM Projet.dbo.Produit");
               ui->comboBox->setModel(model);
     
     
               QSqlQuery query;
               query.prepare("SELECT  Matricule FROM Projet.dbo.Produit WHERE Nom=:nom");
               query.bindValue(":nom", ui->comboBox->currentText());
               if (query.exec() && query.next()) {
                   ui->lineEdit_3->setText(query.value(0).toString());
               }
               QObject::connect(ui->comboBox, SIGNAL(currentIndexChanged(int)),ui->lineEdit_3, SLOT(setText(ui->comboBox->currentText())));
    Que dois-je faire ? Merci d'avance

  6. #6
    Membre chevronné Avatar de hariman
    Homme Profil pro
    Développeur Java, Android
    Inscrit en
    Janvier 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Java, Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 200
    Par défaut
    Tu dois créer un slot qui va exécuter la requête.

    Ce lien peut t'être utile : Signaux et slots avec Qt4

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

Discussions similaires

  1. L'avenir du BDE et des SQL Links révélé ! <officiel>
    Par Merlin dans le forum Bases de données
    Réponses: 12
    Dernier message: 02/06/2006, 10h18
  2. Pb migration Access / SQL server
    Par yoyo dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 25/04/2005, 10h39
  3. Backup BD SQL Server
    Par Ethmane dans le forum Administration
    Réponses: 3
    Dernier message: 07/06/2002, 00h42
  4. Cours, tutoriels, logiciels, F.A.Q,... pour le langage SQL
    Par Marc Lussac dans le forum Langage SQL
    Réponses: 0
    Dernier message: 04/04/2002, 10h21

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