donc pourquoi je mes la chaine de connexion dans le web.config si je ne vais utiliser la chaine directement à partir de là?
moi j'ai pensé que la chaine est sauvegardée dans le fichier web.config sans que'elle soit définit dans les fichiers .vb
Version imprimable
donc pourquoi je mes la chaine de connexion dans le web.config si je ne vais utiliser la chaine directement à partir de là?
moi j'ai pensé que la chaine est sauvegardée dans le fichier web.config sans que'elle soit définit dans les fichiers .vb
j'ai ajouter ce code
mais il me signale une erreurCode:
1
2
3
4 Dim config As NameValueCollection config = ConfigurationSettings.AppSettings config.Get(1)
Citation:
'Public Shared ReadOnly Property AppSettings() As System.Collections.Specialized.NameValueCollection' est obsolète*: 'This method is obsolete, it has been replaced by System.Configuration!System.Configuration.ConfigurationManager.AppSettings'
Supposons que dans ton projet tu a 10 fichiers .VB qui doive traiter des données de BD si au niveau de ces 10 fichiers tu définie la chaine de connexion, lorsque tu migrer ton serveur vers une autre machine va falloir éditer tes 10 fichiers et modifier la chaine de connexion d'où l'utilisation du fichier Web.config car a ce moment tu ne modifie que ce fichier, pour la récupération de ta chaine dans le code si tu dans le fichier web.config tu a ajouté.
Tu procédé comme nous avons décrit plus hautCode:
1
2
3
4
5 <appSettings> <add key="Con" value="Server=192.168.0.10;Database=DB.mdf;Trusted_Connection=true;" /> </appSettings>
dans le cas ou tu veut procédé comme suit dans le fichier web.config
Je te renvoie a cette source ou toute la procédure est décriteCode:
1
2
3
4
5
6
7
8 <connectionStrings> <add key="Con1" value="Data Source="ICI la base est dans un fichier APP_DATA comment je le spécifie";provider=ICI JE MES quoi" /> </connectionStrings>
http://msdn.microsoft.com/fr-fr/library/ms178411.aspx
bn j'espere que ça sera le dernier post dans ce sujet je sais que c'est facile pour vous mais un oeu dur pour moi
donc dans le fichier web.config je mes la chaine
et dans le fichier .vbCode:
1
2
3
4 <appSettings> <add key="Con1" value="Server=192.168.0.33;Database=DB.mdf;Trusted_Connection=true;" /> </appSettings>
je vais mettre
mais est ce que dans tous les fichiers où j'utilise la base je dois ecrire ce code??Code:
1
2
3
4
5
6
7
8
9
10
11
12 Dim rootWebConfig As System.Configuration.Configuration rootWebConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/MyWebSiteRoot") Dim connString As System.Configuration.ConnectionStringSettings If (0 < rootWebConfig.ConnectionStrings.ConnectionStrings.Count) Then connString = rootWebConfig.ConnectionStrings.ConnectionStrings("NorthwindConnectionString") If Not (Nothing = connString.ConnectionString) Then Console.WriteLine("Northwind connection string = {0}", connString.ConnectionString) Else Console.WriteLine("No Northwind connection string") End If End If
en plus je n'ai pas bien compris ce code, pardon
:nono: Tu ne doit pas procéder comme cella c'est dans le cas ou tu a mit ta chaine dans les balises<ConnectionString>
Bon voila un truc que je viens de faire et tester sa va marcher a cout sur
donc tu a ajouté sa dans le fichier Web.config
maintenant pour récupéré ta chaine fait simplementCode:
1
2
3
4 <appSettings> <add key="Con1" value="Server=192.168.0.33;Database=DB.mdf;Trusted_Connection=true;" /> </appSettings>
et le tour est jouer. je l'avais fait pour lire la chaine de connexion dans le fichier app.config en VB.net sa marche aussi avec le fichier web.config je l'ai testé :ccool:Code:
1
2
3 Dim configurationAppSettings As System.Configuration.AppSettingsReader = New System.Configuration.AppSettingsReader Dim ChaineCon As String = configurationAppSettings.GetValue("Con1", GetType(System.String))
n'oublie pas
Code:
1
2Imports System.Configuration
Ce qui est recommande, vu que les balises connectionstrings sont la pour cela...
Donc, oui, la chaine de connection doit aller dans le web.config, dans les balises connectionstring
Non, le bout de code que tu montres n'est pas vraiment une bonne pratique, il faudrait plutot faire :
Code:
1
2 string connString = ConfigurationManager.ConnectionStrings("Con1").ConnectionString
Oui, a partir du moment ou tu veux manipuler la base de donnees, tu vas avoir besoin d'ouvrir une connection, ce qui requiert ne chaine de conenction (et surtout pas une connection que tu laisse ouverte pendant toute la duree de l'appli)Citation:
mais est ce que dans tous les fichiers où j'utilise la base je dois ecrire ce code??
Par contre, non, tu ne dois pas ecrire ca dans chaque fichier, il vaut mieux avoir une seule classe qui gere tes acces a la bdd, et l'apeler en cas de besoin, que de dupliquer ton code 150 fois...
li les post que j'ai fait plus haut j'ai proposé deux cas de figure a notre camarade avec lien donc il sait qu'elle méthode est conseillé et la il est en train de s'emballer il a prie le choix de mettre sa chaine dans les balises AppSettings et il veut lire comme si c'était dans les balises Connectionstrings
Ce bout de code est nickel pour la lecture d'un élément dans la balise AppSetting que ce soit la chaine de connexion ou autre chose, pareil que le tiens pour lire dans la balise ConnectionStrings.
Et puis l'on conseille d'utiliser les balises Connectionstring parceque l'on peut définir la chaine de connexion via le Designer sans toute fois aller modifier le fichier web.config donc il est déconseillé de y faire les modifications.
c'est bon donc @lilroma
j'ai fait qu'est ce que vous m'avez dit
aprs je vais définir une variable
et comme ça je peux faireCode:
1
2 Dim conDB as new sqlConnection(con)
C'est juste?Code:
1
2 conDB.open()
je ne sais j'ai eu ce probleme
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code. Détails de l'exception: System.Data.SqlClient.SqlException: Impossible d'ouvrir la base de données 'BDD.mdf' demandée par la connexion. La connexion a échoué. Échec de l'ouverture de session de l'utilisateur 'Administrateur\ASPNET'. Erreur source: Ligne 31 : Else Ligne 32 : 'recherche dans la base de données Ligne 33 : con.Open() Ligne 34 : SqlStr = "Select * from client " Ligne 35 : Cmd = New SqlCommand(SqlStr, conDB)
Le message est clair tu ne parvient pas a te connecter a ton serveur de BD. Ta chaine de connexion n'est pas bonne regarde la de près.
oui mais si je vais faire la chaine de connexion la chaine qui est ecritée dans la propriété de la base chaine de connexion ça marche très bien?
:wow:
je voie deux objets de connexion différent pourquoi con et conDB?Code:
1
2
3
4 con.Open() Ligne 34 : SqlStr = "Select * from client " Ligne 35 : Cmd = New SqlCommand(SqlStr, conDB)
non mais dans mon programme la chaine de connexion c'est conStr
et le sqlconnection c'est con
le probleme c'est dans la chaine de connéxxion qui accede directement à la base à partir du serveur
mais si je vais mettre la chaine indiquée dans les propriètés tout marchera bien