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] Modifier une chaine de connextion


Sujet :

Accès aux données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 25
    Points : 21
    Points
    21
    Par défaut [VB.NET] Modifier une chaine de connextion
    J'ai créé une liaison avec une base Access en utilisant l'assistant de Connexion de données de Visual Basic 2005 Express. Cet assistant se décline à un assistant de connection à la base qui stoque la chaine de connextion dans les paramètres de l'application.

    Cette chaine de connection a un Scope "Application" en conséquence elle est en ReadOnly.

    Tout fonctionne parfaitement jusqu'au moment où on cherche à personnaliser le chemin d'accès à la base de données par le code (que le programme puisse générer lui-même la chaine de connexion). Je n'arrive pas à modifier la chaine de connexion manuellement ou via une boite de dialogue gérée par l'application.

    Comment faire ? Je me bat avec ce problème depuis deux jours et je ne comprends pas. Ce que j'ai essayé :
    - Modifier les paramètres d'applications -> Impossible, la chaine est ReadOnly
    - Modifier le code générer par l'assistant -> Problème, il est regénéré à chaque fois par le compilateur.
    - Dire à l'assistant de ne pas stoquer la chaine de connexion, que je le ferai moi-même. L'assistant ne peut plus se connecter à la base et s'arrête. D'ailleurs j'ai déjà fait tous les bind, j'ai testé cette solution sur un nouveau projet au moment de la création de la connexion.
    - Me pendre avec le fil de la souris -> elle est sans fil !

    Voilà, si vous pouvez m'aider ce sera bon pour votre karma ;-)

    Merci.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut
    Bonjour,
    Une autre solution, te jeter par la fenêtre.
    Bon soyons sérieux
    Pourquoi ne pas créer un paramètre string ou tu stockes la nouvelle chaîne de connection et utiliser cette chaîne comme commandstring.

    J'ai récupéré une chaîne de connection générée avec l'assistant, transféré la chaîne dans une variable, modifié le data source, écrit comme paramètre string, relus ce paramètre et ouvert la connection sans problème.
    Bon boulot
    Jean

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 25
    Points : 21
    Points
    21
    Par défaut Du bon karma :)
    Merci... alors, reprenons :

    "J'ai récupéré une chaîne de connection générée avec l'assistant, transféré la chaîne dans une variable" OK, j'ai bien récupéré ma connectionString

    "modifié le data source, écrit comme paramètre string" C'est là que je coince. La code source de la base est dans GuestDataSet.Designer.vb (sous répertoire de GuestDataSet.xsd) mais en en-tête j'ai ce commentaire :

    <auto-generated>
    ' Ce code a été généré par un outil.
    ' Version du runtime :2.0.50727.42
    '
    ' Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
    ' le code est régénéré.
    ' </auto-generated>

    Pourtant j'ai cette Sub prometteuse :
    <System.Diagnostics.DebuggerNonUserCodeAttribute()> _
    Private Sub InitConnection()
    Me._connection = New System.Data.OleDb.OleDbConnection
    Me._connection.ConnectionString = Global.Monapplication.My.MySettings.Default.GestConnectionString
    End Sub


    et effectivement, mes modifs sont perdues à chaque Rebuild. Je comprend pas où puis-je intercepter la connection.

    Un jour peut-être : "relus ce paramètre et ouvert la connection sans problème."

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut
    Bonjour,
    il ne faut jamais modifier les fichiers générés par VS car en effet tous se regénére.
    lors de mon test j'ai écrit la chaîne de connection comme paramètre
    nachaine = my.settings....
    'modifier l'adresse de la source
    machaine = machaine.replace(...
    'sauver la haine comme paramètre string
    my.settings.test = machaine
    my.settings.save
    ensuite j'ai relu la chaine
    machaine = my.settings.text
    sqlcon.connectionstring = machaine
    la syntaxe n'est peut-être pas tout à fait correcte car je n'ai pas VS sur ce PC.(si problème je reteste ce soir)
    Bon boulot
    Jean

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 25
    Points : 21
    Points
    21
    Par défaut Yessss !
    Merci. Ca fontionne très bien, en fait lorsque l'assistant gènère la chaine de connexion en paramètre d'application, il la Type "(chaine de connexion)" avec une portée application non modifiable, en ReadOnly. (du coup la solution machain=My.settings.ConnectionStringTest n'était pas possible.

    Il suffit de changer le Typage en String, de mettre le scope Utilisateur et d'utiliser My.Settings..... pour changer le parmètre et l'enregistrer.

    Ouf. encore merci.

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

Discussions similaires

  1. Modifier une chaine de caractères lue dans une DB
    Par shinryu69 dans le forum Langage
    Réponses: 4
    Dernier message: 31/10/2006, 13h40
  2. Modifier une chaine de caractères ?
    Par Arkadius dans le forum Oracle
    Réponses: 2
    Dernier message: 13/04/2006, 16h21
  3. [vb.net]Formater une chaine en date
    Par Dnx dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/10/2005, 12h40
  4. [VB.NET] Compléter une chaine avec des espaces
    Par Lois dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/03/2005, 09h09
  5. [VB.NET] Charger une chaine XML
    Par Dnx dans le forum ASP.NET
    Réponses: 11
    Dernier message: 17/03/2005, 14h55

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