none
Aide pour une requete sur un sqlDataSource RRS feed

  • Question

  • Bonjour tous le monde,

    Voilà la situation, J'ai une table User outre les infos d'un utilisateur on peut y trouver un text contenant les clés primaire des utilisateurs amis. (avec ; comme séparateur)

    Je cherche à afficher la liste des amis d'un utilisateur dans une page.

    J'utilise un SqlDatasource pour la connection et les requetes.

    Avez vous une idée sur la requete à effectuer pour obtenir ce que je cherche ainsi que le composant, connecter au Datasource, à utiliser???

    J'espere avoir été assez clair et succiter quelques réponses.

    Merci d'avance pour votre aide.

    Très cordialement.
    jeudi 11 février 2010 19:25

Réponses

  • Salut,

    Si je comprends bien tu as une table qui ressemble a un truc du genre

    table :  USER


    USER_ID : qui est la clé primaire
    USER_NAME
    ....
    FRIEND_ID  ou friend_id correspond a une chaine de user_id séparés par ';' ??

    Si c'est bien ça :
    1) Lorsque tu récupère ton champ friend_id, tu peux utiliser la fonction replace pour changer le séparateur ';' en ',' 
    2) tu peux exécuter ainsi une requête qui ressemble a 

    SELECT 
                   les_champs_que_tu_veux_recuperer
             FROM 
                   USER
             WHERE
                   FRIEND_ID IN ('ta_chaine_contenant_tous_les_is_amis_separes_par_des_virgules')

    3)  Cette requête tu peux la passer au SelectCommand de ton sqlDataSource

    J'espère que ça t'aidera et que ce n'est pas confus.
    Je te souhaite du courage et de la réussite à l'accomplissement de ton projet.

    Bonne journée.
    • Proposé comme réponse HandLess lundi 15 février 2010 14:16
    • Marqué comme réponse Alex Petrescu jeudi 18 février 2010 09:49
    lundi 15 février 2010 13:56

Toutes les réponses

  • Salut,

    Si je comprends bien tu as une table qui ressemble a un truc du genre

    table :  USER


    USER_ID : qui est la clé primaire
    USER_NAME
    ....
    FRIEND_ID  ou friend_id correspond a une chaine de user_id séparés par ';' ??

    Si c'est bien ça :
    1) Lorsque tu récupère ton champ friend_id, tu peux utiliser la fonction replace pour changer le séparateur ';' en ',' 
    2) tu peux exécuter ainsi une requête qui ressemble a 

    SELECT 
                   les_champs_que_tu_veux_recuperer
             FROM 
                   USER
             WHERE
                   FRIEND_ID IN ('ta_chaine_contenant_tous_les_is_amis_separes_par_des_virgules')

    3)  Cette requête tu peux la passer au SelectCommand de ton sqlDataSource

    J'espère que ça t'aidera et que ce n'est pas confus.
    Je te souhaite du courage et de la réussite à l'accomplissement de ton projet.

    Bonne journée.
    • Proposé comme réponse HandLess lundi 15 février 2010 14:16
    • Marqué comme réponse Alex Petrescu jeudi 18 février 2010 09:49
    lundi 15 février 2010 13:56
  • Bonjour,

    HandLess, merci pour la réponse.

    Trouffiondesiles, est-ce que la réponse vous a été utile ?

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    mardi 16 février 2010 10:05
  • Bonjour,

    Merci pour votre réponse très précise.

    Vous avez cerné mon problème et répondu très correctement, celà semble être la solution à mon attente.

    néanmoins quand j'applique cette méthode, de cette facon :


    FriendList =

    "23,28"

    DScrFriend.SelectCommand =

    "SELECT * FROM UsersTable WHERE PKUser IN ('" & FriendList & "')"

    DScrFriend.Select(DataSourceSelectArguments.Empty)

    j'ai une erreur lors du Select  Échec de la conversion de la valeur varchar '23,28' en type de données int.

    Certainement car mon PKUser est un entier.

    Avez vous une solution à ce probème?


    Merci d'avance pour votre réponseet merc encore pour votre aide.

    Cordialement

    Nicolas

    vendredi 19 février 2010 21:05