Lecture d'une section d'un web.config

ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010 - 5 juin 2009 à 23:55
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010 - 8 juin 2009 à 16:11
Bonjour, je voudrai lire objectQualifier qui se trouve ci dessous (en rouge).

<data defaultProvider="SqlDataProvider">
     
        <clear />
       
     

    </data>

J'ai fait le code ci-dessouspour la lecture mais mon "data" est toujours null. Pouvez-vous m'aider. Y a-til quelquechose d'anormal dans mon code ci-dessous? merci.

NameValueCollection objqfier = new NameValueCollection();
                 objqfier =  (NameValueCollection)ConfigurationManager.GetSection("data/providers/SqlDataProvider");
                string objectQualif = objqfier["objectQualifier"];
                    if (objectQualif != string.Empty)
                    {
                        objectQualif += "_";
                    }
.............

5 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
7 juin 2009 à 23:26
Bonsoir,

c'est normal, ta requete au niveau de GetSection est invalid, il ne me semble pas que tu puisses obtenir ton objet directement ainsi. Essaye eventuellement GetSection("data/providers/add[name=SqlDataProvider]") mais je ne pense pas que cela fonctionne.
Pour faire ce que tu veux, tu peux passer par GetSection("data/providers") puis faire une recherche dans ton tableau pour récuperer l'élément qu'il te faut. Tu peux utiliser le debug pour bien voir quelles sont les propriétés à vérifier.

Si tu écris ta configuration, alors tu devrais plutot écrire un helper.

<hr />Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
8 juin 2009 à 11:26
Bonjour,
j'ai procédé comme tu m'as dit (GetSection("data/providers/add[name=SqlDataProvider]")) mais j'ai toujours une valeur null. Peux tu me donner un exemple de code adapté au mien?
Merci.
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
8 juin 2009 à 11:38
Object o = ConfigurationManager.GetSection("data/providers")

Ensuite tu regardes en debug ce que vaut o, tu cherches comme boucler surla collection de provider, et tu recherches le provider que tu souhaites.

Par contre, je ne pense pas que "data/providers" suffise, il faut le path complet (cf doc msdn de GetSection)

<hr />Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
8 juin 2009 à 13:13
J'ai regardé sur msdn et c'est bien comme ça que ça s'utilise. J'ai mis le chemin complet mais toujours null, ca me rend fou!!!
Avec ce qui suit j'ai mis le chemin complet:
GetSection("dotnetnuke/data/providers/add[name=SqlDataProvider]")  ou bien
Object o = ConfigurationManager.GetSection("dotnetnuke/data/providers")

Dans ces 2 cas, j'ai essayé avec le debugger mais c'est toujours null
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
8 juin 2009 à 16:11
Sinon, j'ai fait comme suit pour lui dire de lire ce qui est dans objectQualifier (si c'est pas vide, de rajouter ce qu'il a trouvé à Tabmodules ). Mon code est-il juste?
Merci.

DotNetNuke.Framework.Providers.ProviderConfiguration _providerConfiguration = new  DotNetNuke.Framework.Providers.ProviderConfiguration();
               _providerConfiguration = DotNetNuke.Framework.Providers.ProviderConfiguration.GetProviderConfiguration("data");
               DotNetNuke.Framework.Providers.Provider objProvider = ((DotNetNuke.Framework.Providers.Provider)_providerConfiguration.Providers[_providerConfiguration.DefaultProvider]);
               String objectQualifier = objProvider.Attributes["objectQualifier"];               if (objectQualifier !"" & objectQualifier.EndsWith("_") false)
               {
                   objectQualifier += "_";
               }
               ConnectionStringSettingsCollection connectionStrings =
               ConfigurationManager.ConnectionStrings;
               IEnumerator connectionStringsEnum = connectionStrings.GetEnumerator();
                string ConnString = connectionStrings["SiteSqlServer"].ConnectionString;
                String SelQuery = "SELECT [TabModules].[TabID],[TabModules].[ModuleID] FROM [TabModules] INNER JOIN [Modules]ON [TabModules].[ModuleID]=[Modules].[ModuleID]and [Modules].[ModuleTitle]= 'User Accounts'";
                SelQuery.Replace("TabModules", "objectQualif" + "TabModules");
0
Rejoignez-nous