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

Accès aux données Discussion :

[VB.Net 2.0/xsd] Comment passer une chaine de connexion dynamiquement ?


Sujet :

Accès aux données

  1. #1
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut [VB.Net 2.0/xsd] Comment passer une chaine de connexion dynamiquement ?
    Bonjour,
    J'ai deja poste un post similaire dans le forum webform qui n'a eu aucun succes. Peut etre etait-ce trop en rapport avec ADO.net en fait.
    Alors voila j'espere que quelqu'un aura une brillante idée car j'avoue que je suis a bout avec ce probleme que voici :

    J'ai une application ASP.net qui a un business object (un projet vb.net) contenant un strongly typed dataset (fichier .xsd). Celui ci contient tous mes DataAdapter et DataTables.
    L'application fonctionne de la facon suivante:

    L'utilisateur entre un username et un mot de passe et choisit un nom de client dans une liste. Si l'identification se deroule avec succes, une chaine de connexion correspondant au client est retournee a l'application. C'est la que ca se complique car a present je dois specifier au .xsd d'utiliser cette chaine de connexion.
    Je pourrais tout simplement faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.Settings.Item("ConnectionString") = "some connection sring"
    Mais ca changerais la chaine au niveau de l'application donc pour tous les utilisateurs, ce qui n'est evidemment pas le but.

    Comment faire alors pour passer une chaine de connexion au xsd et qui soit egalement au niveau de l'utilisateur uniquement ?

    Merci

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Mmmh... il me semble que si tu as utilisé l'assistant pour créer ton DataSet typé, le codage de la chaîne de connection est iréversible car je crois que les TableAdapters générés ne permettent pas la modification de celle-ci. En conclusion la création du Dataset devrait elle aussi être dynamique avec de bon vieux DataAdapters plus consiliant
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Salut Neguib,

    Justement mon manager m'a 'forcé' a utiliser un xsd car selon lui ca permet un grand gain de temps. Je suis persuade que ca aurait ete beaucoup plus simple d'ecrire mes propres classes d'acces aux donnees. En effet le xsd a ses limites et il n'est pas souple du tout, la preuve.

    Ceci etant dit, les datatables utilisent une connexion stockee dans Settings.Settings. Elle peut etre modifiee de la maniere suivante au runtime:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.Settings.Item("ConnectionString") = "some connection sring"
    Le probleme c'est qu'elle ne peut qu'etre de niveau 'Application' donc changee pour tous les utilisateurs a la fois, ce qui n'est pas l'effet desire./

    Sais tu comment je pourrais faire pour que le xsd utilise une connexion au niveau 'User' ?

    merci

  4. #4
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    J'ai resolu mon probleme

    J'ai une classe UserSession dans mon business object, qui garde en memoire, dans une variable membre, la chaine de connexion retournee par la procedure stockee d'itentification.
    Un objet de type UserSession est stocke dans une variable de Session de maniere a etre accessible a tout moment de n'importe quel endroit sur le site.
    Enfin, a chaque fois que je cree un dataAdapter (definit dans mon xsd), j'assigne a sa propriete .Connexion.ConnexionString, la valeur sauvegardee dans mon objet UserSession.
    Bon c'etait pas si sorcier, mais pas vraiment evident au premier abord, compte tenu du cote un peu obscure des fichiers xsd....

    merci

  5. #5
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    En tout cas de cette astuce
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/01/2012, 15h08
  2. comment passer une chaine
    Par noobC dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/08/2008, 14h55
  3. [VB.NET] Comment passer une image à CR
    Par olbi dans le forum Windows Forms
    Réponses: 5
    Dernier message: 25/09/2006, 20h19
  4. Réponses: 1
    Dernier message: 21/07/2006, 12h36

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