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

VB.NET Discussion :

Liste d'amis par SQL ?


Sujet :

VB.NET

  1. #1
    Membre du Club Avatar de mathisdu42
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2013
    Messages : 168
    Points : 64
    Points
    64
    Par défaut Liste d'amis par SQL ?
    Bonjour / Bonsoir à tous.

    J'utilise :

    Visual Studio 2015.
    Navicat Premium.
    Une BDD chez AlwaysData.net.


    Sur mon programme j'aimerais faire un système de liste d'amis (à l'aide de ListBox)
    Donc j'ai fais une nouvelle Form, mis un bouton "Ajouter", mis une ListBox qui va charger tout les membre inscrit dans la base de données (+ un timer pour refresh la ListBox toute les 10 secondes) puis au passage fait une fonction de recherche à l'aide d'une TextBox. Ensuite, lorsqu'on va sélectionner un membre dans la ListBox puis cliquer sur le bouton "Ajouter", cela va écrire dans la base de données, dans là colonne "Amis" le nom de la personne sélectionnée. Jusque là tout va bien, rien de très compliqué.

    Mon problème : Quand je sélectionne une personne et que j'appuie sur "Ajouter", la personne s'ajoute bel et bien dans la colonne "Amis" mais si j'en rajoute une autre, la personne que j'ai ajouté précédemment sera remplacée par la nouvelle. J'aimerais qu'à chaque fois que j'appuie sur "Ajouter" le nom de toutes les personne soit inscrites dans la colonne Amis avec par exemple un espace ou une virgule.

    Dans la colonne Amis :

    Ex : Paul,Jean,Kevin,Mathis
    Ou : Paul Jean Kevin Mathis

    Voici le code que j'utilise pour le bouton ajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Dim MySqlConnection As New MySqlConnection
                MySqlConnection.ConnectionString = "server=alwaysdata.net;Port=3306; userid=*****; password=*****; database=ya42800_sqllogin;"
                Dim reader As MySqlDataReader
                Dim command As New MySqlCommand
                Try
                    MySqlConnection.Open()
                    Dim query As String
                    query = "UPDATE ya42800_sqllogin.login SET username='" & Form4.MaterialSingleLineTextField1.Text & "',Amis='" & ListBox1.SelectedItem & "' WHERE username='" & Form4.MaterialSingleLineTextField1.Text & "'"
                    command = New MySqlCommand(query, MySqlConnection)
                    reader = command.ExecuteReader
                    MsgBox(ListBox1.SelectedItem & " a été ajouté à votre liste d'amis.")

    Je tiens à préciser que je ne sais absolument pas si il est possible de réaliser se genre d'opération...

    Merci, Cordialement.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    update ne sert pas à ajouter une ligne
    => insert into


    au passage (même si ca ne pose pas de problème fonctionnel) executereader sert en cas de SELECT (pour lire les résultats)
    sinon c'est ExecuteNonQuery
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club Avatar de mathisdu42
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2013
    Messages : 168
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    update ne sert pas à ajouter une ligne
    => insert into


    au passage (même si ca ne pose pas de problème fonctionnel) executereader sert en cas de SELECT (pour lire les résultats)
    sinon c'est ExecuteNonQuery
    Merci d'avoir répondu Polo63.

    ExecuteNonQuery ne fonctionne pas.

    J'ai le message suivant :

    Nom : Sans titre.png
Affichages : 165
Taille : 6,1 Ko


    EDIT : J'ai finalement trouvé pour le ExecuteNonQuery. Je cherche toujours pour le reste
    EDIT 2 : C'est pas logique, le INSERT INTO créer à chaque fois une nouvelle ligne seulement avec le nom de l'ami ... Moi je voudrais que les amis soient dans la ligne du compte qui a ajouté le ou les amis

    Ex : Je créer un compte qui s'appelle Jean, je souhaite ajouter un ami qui s'appelle Paul, j'aimerais que Paul soit dans la ligne / dans le compte de Jean

    Nom : amis.png
Affichages : 162
Taille : 4,9 Ko

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    non

    tout dépend de la relation
    si un compte = un seul et unique ami alors il peut être sur la ligne
    si un compte = plusieurs amis alors il faut une sous table
    [Compte] IdCompte, Nom ...
    [Amis] IdAmi, IdCompte, Ami (plusieurs lignes ici permettent d'avoir plusieurs amis pour un IdCompte
    si un compte = plusieurs amis, mais qu'un ami peut etre sur plusieurs comptes (autrement dit il n'y a plus d'amis, mais que des comptes et des comptes peuvent être amis, réciproquement ou non) alors
    [Compte] IdCompte, Nom ...
    [Amis] IdLigne, IdCompte1, IdCompte2

    c'est la base de la création d'une base de données ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre du Club Avatar de mathisdu42
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2013
    Messages : 168
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    non

    tout dépend de la relation
    si un compte = un seul et unique ami alors il peut être sur la ligne
    si un compte = plusieurs amis alors il faut une sous table
    [Compte] IdCompte, Nom ...
    [Amis] IdAmi, IdCompte, Ami (plusieurs lignes ici permettent d'avoir plusieurs amis pour un IdCompte
    si un compte = plusieurs amis, mais qu'un ami peut etre sur plusieurs comptes (autrement dit il n'y a plus d'amis, mais que des comptes et des comptes peuvent être amis, réciproquement ou non) alors
    [Compte] IdCompte, Nom ...
    [Amis] IdLigne, IdCompte1, IdCompte2

    c'est la base de la création d'une base de données ...
    Ah ouais mais c'est en fait beaucoup plus complexe que je ne l'imaginais ... ça m'a l'air plutôt compliqué vu mon niveau ...

  6. #6
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    cette demande me rappelle furieusement une autre lue il y a quelques jours/semaines :
    - un set user = @a ... where user = @a
    - une assignation qui, on espère, fera un concat par magie.

    Sinon oui, une table d'assoç semble plus indiquée (beaucoup plus simple à manipuler).
    Et n'oublie pas d'utiliser les requêtes paramétrées.
    Plus je connais de langages, plus j'aime le C.

Discussions similaires

  1. Comment créer une liste d'amis avec SQL
    Par mecmec dans le forum Requêtes
    Réponses: 8
    Dernier message: 03/10/2015, 12h47
  2. liste deroulante alimenter par sql
    Par kate59 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/01/2009, 20h52
  3. Réponses: 6
    Dernier message: 21/07/2008, 11h21
  4. [MySQL] Liste déroulante liée, chargée par SQL
    Par Krakt dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 23/03/2007, 10h55
  5. Remplir une Liste par SQL ?
    Par Zigouigoui dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 03/12/2005, 17h08

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