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

ASP.NET Discussion :

[VB.NET] connexion ms access et web.config


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Par défaut [VB.NET] connexion ms access et web.config
    Bonjour !

    Je suis novice en asp.net et je rencontre un soucis de connexion à ma base access. En fait je cherche à stocker ma chaine de connexion dans le web.config (comme c'est expliqué dans de nombreux post), jusque là pas de problème...
    Voici le modèle que j'ai trouvé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <appSettings>
    <add key="adc_loc" value="Server=(local);Integrated Security=True;Database=Contacts" />
    </appSettings>
    Cependant, pour me connecter à access, il me semble que je dois utiliser le provider "microsoft.jet.OleDb". Ma chaine de connexion devient donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <appSettings>
                <add key="adc_loc2" value="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\my_wwwroot\bdd\mabase.mdb" />
    </appSettings>
    Mais lorsque je fais cela, il me retourne une erreur: "System.ArgumentException: Keyword not supported: 'provider'"
    J'imagine que cela vient de ma chaine de connexion (qui fonctionne lorsque je la définie dans le global.asax et que j'utilise l'objet SqlConnection). Comment peut-on définir une chaine de connexion à MS access dans le web.config ?

    Par avance merci pour votre aide

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Bonjour nicolb
    Citation Envoyé par La règle du forum
    Utilisation des tags:
    Afin de faciliter la recherche et la navigation sur ce forum, nous avons mis en place un système de tags (Mots clés entre crochets dans les titres des messages). Ces tags ont pour but de déterminer de manière immédiate le langage en question : ...
    voir > http://www.developpez.net/forums/viewtopic.php?t=326091
    Soyez rigoureux quant aux respects des règles du forum, elles vous garantissent également les réponses les plus appropriées à résoudre votre souci, tout en veillant à ne pas incommoder inutilement les professionnels qui donnent benevolement de leur compétence à vous répondre. Veillez à vous mettre en règle en éditant votre post afin de modifier votre titre en conséquence. Je vous remercie de votre attention à maintenir le forum agréable et efficace.
    (Bouton en haut à droite du premier post de ce thread)
    Cordialement

  3. #3
    Membre confirmé Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Par défaut
    Oups...
    Désolé, je me suis un peu précipité

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Merci

    Bon pour l'utilisation dan sle web.config c'est ok mais le souci vient de l'utilisation d'une SqlConnection au lieu d'une OleDbConnection il me semble

  5. #5
    Membre confirmé Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Par défaut
    Désolé, c'était un lapsus
    J'utilisais bien un objet OleDbConnection dans mon global.asax...

    Effectivement mon problème ne vient pas du web.config... Mais du contrôle SqlDataSource que je cherche à utiliser avec cette connexion.
    Je pense que c'est à ce niveau qu'il me retourne l'erreur "System.ArgumentException: Keyword not supported: 'provider'".

    J'ai lu dans la doc de microsoft que l'on peut utiliser ce contrôle avec Access... Mais je n'arrive pas à trouver la bonne chaine de connexion puisqu'il n'accepte pas que je définisse le provider...

    J'ai trouvé une parade qui consiste à utiliser le contrôle spécifique <asp:AccessDataSource... mais j'aimerais quand même trouver la solution avec le contrôle SqlDataSource !!!

    Une petite question subsidiaire concernant le web.config:
    Lorsque je défini ma chaine de connexion dans la section "<appSettings>", pas de soucis, mais lorsque j'essaie de la définir comme suit,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <connectionStrings>
          <add name="NorthwindOLEDB" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Northwind.mdb;"
         providerName="System.Data.OleDb" />
         </connectionStrings>
    j'obtiens une erreur à sa récupération dans le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connex = ConfigurationSettings.ConnectionString("NorthwindOLEDB").ConnectionString
    Voici l'erreur:"'ConnectionString' is not a member of 'System.Configuration.ConfigurationSettings'"
    D'où cela peut-il venir s'il vous plait, j'ai lu sur plusieurs sites que cette syntaxe est correcte !?!

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Version Framework et IDE stp :

  7. #7
    Membre confirmé Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Par défaut
    J'utilise le framework 2.0 et Dreamweaver 8 (je m'aide également de Webmatrix)...

  8. #8
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,
    Un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub InitializeComponent()
       Dim configurationAppSettings As System.Configuration.AppSettingsReader = New System.Configuration.AppSettingsReader
       Me.myDataAdapter = New System.Data.SqlClient.SqlDataAdapter
       Me.myConnection = New System.Data.SqlClient.SqlConnection
       Me.myConnection.ConnectionString = CType(configurationAppSettings.GetValue("ConnectionString", GetType(System.String)), String)
     
    End Sub
     
    Protected WithEvents myDataAdapter As System.Data.SqlClient.SqlDataAdapter
    Protected WithEvents myConnection As System.Data.SqlClient.SqlConnection
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  9. #9
    Membre confirmé Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Par défaut
    Merci Immobilis

    Dans ton exemple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.myConnection.ConnectionString = CType(configurationAppSettings.GetValue("ConnectionString", GetType(System.String)), String)
    Tu vas chercher ta chaine de connexion dans la section "<appSettings>", non ?

    Comment peut-on adapter cette syntaxe pour aller chercher cette chaine dans la section <connectionStrings> du web.config ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <connectionStrings> 
          <add name="NorthwindOLEDB" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Northwind.mdb;" 
         providerName="System.Data.OleDb" /> 
         </connectionStrings>
    Merci!

  10. #10
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Je n'ai pas ce noeud dans mon web.config.
    Dslé.
    "Winter is coming" (ma nouvelle page d'accueil)

  11. #11
    Membre confirmé Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Par défaut
    J'ai lu sur plusieurs sites que depuis ASP.NET 2.0 cette section spécifique existe dans le web.config.
    Quelques pistes à ces adresses:
    http://www.ondotnet.com/pub/a/dotnet...onnstring.html
    http://loudcarrot.com/Blogs/dave/arc...1/01/1056.aspx

    Merci quand même... Je continue à creuser

  12. #12
    Membre éclairé Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <connectionStrings>
    ... (autres chaines de connexion)
      <add name="BaseTest_ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test\SiteTEST\BaseTest.mdb;Persist Security Info=True;Jet OLEDB:Database Password=le_pwd"
       providerName="System.Data.OleDb" />
    </connectionStrings>
    Ainsi, ta chaine de connexion devrait apparaitre lorsque tu utilises l'objet SqlDataSource. D'ailleurs, c'est l'objet recommandé même pour Access si tu veux exploiter toutes les fonctionnalités.

    Et si tu veux te servir de la chaine de connexion dans le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string connString = System.Configuration.ConfigurationManager.ConnectionStrings["BaseTest_ConnectionString"].ConnectionString;
    Bon courage

  13. #13
    Membre confirmé Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Par défaut
    Merci pour ta réponse

    Je viens d'essayer avec cette syntaxe, mais cela ne fonctionne pas

    Voici mon code:
    Fichier web.config
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="UTF-8" ?>
     
    <configuration>
     
    <connectionStrings>
         <add name="accessData" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\adresse\mabase.mdb;Persist Security Info=True;"
    providerName="System.Data.OleDb" />
    </connectionStrings>
    Dans mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <script runat="server">
      groupesSource.connectionString=System.Configuration.ConfigurationManager.connectionStrings("accessData").connectionString
      groupesSource.SelectCommand=sql
    </script>
     
    ...
     
    <form runat="server">
      <asp:DataList id="groupes" runat="server" RepeatColumns="4" RepeatDirection="Horizontal" ShowFooter="False" ShowHeader="False" BackColor="#DCEAF5" AlternatingItemStyle-BackColor="#34558b" SelectedItemStyle-BackColor="red" OnItemCommand="groupes_ItemCommand" DataSourceID="groupesSource">
        <itemtemplate>
            <div style="padding:0px 2px 0px 2px" onmouseover="roll_on(this)" onmouseout="roll_out(this)">
                  <asp:linkbutton CommandArgument=<%# DataBinder.Eval(Container.DataItem, "ID") %> CommandName="Select" runat="server" CssClass="treb_noir_11" ForeColor="#000000">
                         [&nbsp;<%# DataBinder.Eval(Container.DataItem, "groupe") %>&nbsp;]
                  </asp:linkbutton>
             </div>
           </itemtemplate>
      </asp:DataList>
      <asp:SqlDataSource id="groupesSource"></asp:SqlDataSource>
    Erreur renvoyée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.ArgumentException: Keyword not supported: 'provider'.
    Je récupère bien ma chaîne de connexion dans le code (c'est déjà un progrès ), mais l'attribut "ConnectionString" du contrôle SqlDataSource ne semble pas supporter le mot clef "provider"

    Comment faire ???
    Merci

  14. #14
    Membre confirmé Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Par défaut
    J'ai enfin la solution !
    Pour Access il ne faut pas oublier de préciser l'attribut "providerName" dans le contrôle SqlDataSource.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    groupesSource.providerName=System.Configuration.ConfigurationManager.connectionStrings("accessData").providerName
    Et voilà !!!
    A+

  15. #15
    Membre éclairé Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    groupesSource.connectionString=System.Configuration.ConfigurationManager.connectionStrings("accessData").connectionString
      groupesSource.SelectCommand=sql
    Pourquoi ne profites-tu pas du mode design de ton OBJET SqlDataSource groupesSource ?
    Tu auras ainsi juste à sélectionner la chaine de connexion accessData dans la DropDownList. Ensuite, via le Query Builder, tu construis la requête pour ton Select (enfin, si ta chaine de connexion est correcte). C'est très très bien fait.
    Utilise le mode Design, et donne-nous la propriété connectionString qui devrait s'afficher dans la fenêtre Propriétés concernant ton objet SqlDataSource. Tu devrais avoir exactement ce qui a été défini dans ton Web.config.
    Vérifie aussi la casse de la syntaxe.

  16. #16
    Membre confirmé Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Par défaut
    Merci pour les conseils !!!

    Il est vrai que je n'utilise pas assez le mode design
    Je vais creuser de ce coté là pour mes futures connexions !!!
    A+

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

Discussions similaires

  1. [ASP.NET] - Modifier l'emplacement du Web.config
    Par nono27200 dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 15/10/2008, 09h55
  2. Réponses: 0
    Dernier message: 30/08/2007, 11h04
  3. [VB.NET] Connexion db access Oledb
    Par Sept dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/05/2006, 21h33
  4. [VB.NET] Peut-on modifier le web config à chaud?
    Par Immobilis dans le forum ASP.NET
    Réponses: 5
    Dernier message: 28/11/2005, 14h13
  5. [CR][ASP.Net]Connection base de données / web.config
    Par Dozer71 dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 10/05/2005, 08h41

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