[asp.net] variable publique mais seulement pour la session? possible?

variable publique mais seulement pour la session? possible? [asp.net] - VB/VBA/VBS - Programmation

Marsh Posté le 22-08-2004 à 16:40:19    

bonjour, j'utilise actuellement dans un projet VB.net (webform) des variables déclaré en 'public' dans un module. Le problème c'est que je me suis apercu que ces variables étaient partagées par tout le monde au lieu d'être attribuées seulement pour la session (pour chaque personne quoi).
 
Ainsi, si une personne défini dans variable de type string 'toto' la valeur 'test' n'importe qui à ce moment affichant le contenu de cette variable à la valeur 'test'.
 
Plus grave, la déclaration de connexion au serveur sql :
 

Public maConn As New SqlConnection("User ID=sa;password=xxxxx;Initial Catalog=projet1;Data Source=serveurSql" )


 
est effective pour le programme aussi et non pour la session, ce qui veut dire que si cette connexion échoue, le programme entier est planté pour tout le monde :/
 
A l'aide  :sweat:  
 
 :jap:


Message édité par fils_de_la_lumiere le 22-08-2004 à 19:11:28
Reply

Marsh Posté le 22-08-2004 à 16:40:19   

Reply

Marsh Posté le 23-08-2004 à 09:36:44    

up :(

Reply

Marsh Posté le 23-08-2004 à 10:05:22    

A définir ddans le fichier global.asax

Reply

Marsh Posté le 23-08-2004 à 10:44:40    

définir quoi?

Reply

Marsh Posté le 23-08-2004 à 11:39:06    

Tu peux définir les variables de session dans la fichier global.asax

Reply

Marsh Posté le 23-08-2004 à 14:04:42    

j'ai du faire quelque chose qu'il fallait pas, voici le contenu de mon global.asax et maConn n'est pas trouvé dans le reste du projet :
 

Code :
  1. Imports System.Web
  2. Imports System.Web.SessionState
  3. Imports System.Data
  4. Imports System.Data.SqlClient
  5. Public Class Global
  6.     Inherits System.Web.HttpApplication
  7.     [Code généré par le Concepteur de composants]
  8.     Public maConn As New SqlConnection("User ID=sa;password=xxx;Initial Catalog=Progres;Data Source=xxx" )
  9.     Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
  10.         ' Se déclenche lorsque l'application est démarrée
  11.     End Sub
  12.     Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
  13.         ' Se déclenche lorsque la session est démarrée
  14.     End Sub
  15.     Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
  16.         ' Se déclenche au début de chaque demande
  17.     End Sub
  18.     Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
  19.         ' Se déclenche lors d'une tentative d'authentification de l'utilisation
  20.     End Sub
  21.     Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
  22.         ' Se déclenche lorsqu'une erreur se produit
  23.     End Sub
  24.     Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
  25.         ' Se déclenche lorsque la session se termine
  26.     End Sub
  27.     Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
  28.         ' Se déclenche lorsque l'application se termine
  29.     End Sub
  30. End Class


Message édité par fils_de_la_lumiere le 23-08-2004 à 14:05:10
Reply

Marsh Posté le 23-08-2004 à 14:14:31    

C pas très etonnant
du reste la reponse se trouve dans le fichier que tu viens de poster  
 

Citation :

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
          ' Se déclenche lorsque la session est démarrée
End Sub


 

Reply

Marsh Posté le 23-08-2004 à 14:20:00    

gedeon a écrit :

C pas très etonnant
du reste la reponse se trouve dans le fichier que tu viens de poster  
 

Citation :

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
          ' Se déclenche lorsque la session est démarrée
End Sub



 
même en mettant la variable publique 'maConn' dans 'session_start', cette variable n'est pas trouvé dans le reste du projet
 
(je precise que je fais mes premiers pas en vb.net)

Reply

Marsh Posté le 23-08-2004 à 14:36:11    

comment accedes-tu a maConn ?  
donnes-moi ta syntaxe  
 
Tu as perdu si ce n'est pas un truc du genre Session("maConn" )
 ;)  

Reply

Marsh Posté le 23-08-2004 à 14:47:37    

gedeon a écrit :

comment accedes-tu a maConn ?  
donnes-moi ta syntaxe  
 
Tu as perdu si ce n'est pas un truc du genre Session("maConn" )
 ;)


 
bon alors je vais résumé :D voila comment se presentait mon code :
 
dans un module :
 

Code :
  1. Module _public
  2.     Public maConn As New SqlConnection("User ID=sa;password=xxx;Initial Catalog=xxx;Data Source=xxx" )
  3.     Public monReader As SqlDataReader
  4.     Public currentUserLogin As String
  5.     Public currentUserName As String
  6.     Public currentUserID As Integer
  7.     Public currentUserMail As String
  8. End Module


 
 
dans mes webforms :
 

Code :
  1. Imports System.Data
  2. Imports System.Data.SqlClient
  3. Public Class helpcontent
  4.     Inherits System.Web.UI.Page
  5.     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.         maConn.Open()
  7.         mon code
  8.         maConn.close()
  9.     End Sub
  10. End Class


Message édité par fils_de_la_lumiere le 23-08-2004 à 14:48:22
Reply

Marsh Posté le 23-08-2004 à 14:47:37   

Reply

Marsh Posté le 23-08-2004 à 14:58:38    

Donc utilise le global.asax dans lequel tu va declarer ton object maConn dans la fonction Session_Start
Ensuite de tes pages tu va pouvoir acceder a ton objet maCon a l'aide de la syntaxe suivante  
Session("maConn" ).Open ....
etc
 
 
 

Reply

Marsh Posté le 23-08-2004 à 16:29:01    

Code :
  1. Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
  2.         ' Se déclenche lorsque la session est démarrée
  3.         Dim maConn As New SqlConnection("User ID=sa;password=xxx;Initial Catalog=xxx;Data Source=xxx" )
  4. End Sub


 

Code :
  1. Session("maConn" ).Open()
  2. Dim aaa As New SqlCommand("select * from table where id_t='916'", Session("maConn" ))
  3. monReader = aaa.ExecuteReader
  4. While monReader.Read()
  5.     TextBox1.Text = monReader.GetValue(monReader.GetOrdinal("flag" ))
  6. End While


 
il arrive pas à se connecter avec session("maconn" ).open

Reply

Marsh Posté le 23-08-2004 à 16:45:51    

Ecoute sans detail on ne peux rien faire
Et puis essaye des gerer les erreur a mon avis ça peut pas faire de mal
Le fait que tu soit debutant ne t'empeche pas de regarder l'aide ;)

Reply

Marsh Posté le 23-08-2004 à 16:52:27    

gedeon a écrit :

Ecoute sans detail on ne peux rien faire
Et puis essaye des gerer les erreur a mon avis ça peut pas faire de mal
Le fait que tu soit debutant ne t'empeche pas de regarder l'aide ;)


 
je veux bien détailler mais quels détails veut tu? sinon bah la gestion des erreur j'y ai pensé mais j'ai le même problème sans erreur tout simplement avec mes variables qui sont "vu" par l'application et non par la session

Reply

Marsh Posté le 24-08-2004 à 12:16:00    

c bon merci j'ai trouvé avec session.add("var" ) et session.item("var" ) le seul problème c'est que je n'arrive pas à atteindre l'objet session dans le module ou il y a toute mes fonctions??

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed