Perte d'une session anormalement

cs_lucie12 Messages postés 7 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 2 septembre 2004 - 2 sept. 2004 à 12:09
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 2 sept. 2004 à 19:44
Bonjour,

J'ai un formulaire qui ajoute des données dans une base. Lorsque je clique sur le bouton ajouter, il m'insere les infos et met certaines variables en session. Le problème est que lorsque je reclique sur ajouter, il doit effectuer des updates de mes valeurs avec une des sessions qui a disparue.

J'ai pas mal cherché dans mon code et je ne la réinitialise pas, je ne comprend pas ce qu'il se passe. Il s'agit d'un control ascx et les autres page charger n'utilise pas cette variable de session.
Apres le premier clique, j'ai ma session bien remplie à la fin de l'action du bouton et puis plus rien après. Mais où est donc passé cette variable de session ???

Merci pour l'aide que vous pourrez m'apporter

codebehind:

Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Xml
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Imports System.IO
Imports System.Collections
Imports Microsoft.VisualBasic

Public Class formAjout1
Inherits System.Web.UI.UserControl

Protected WithEvents ongletlang As System.Web.UI.WebControls.Label
:
:
Protected WithEvents modifier As System.Web.UI.WebControls.Button

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
context.Trace.Write("sess idbien debut page Load", Session("IdBien"))

' Style, FStyle = soulignement des titres
Dim Style, FStyle As String
Style = "
"
FStyle = "
"

'si c le premier chargement de la page, la première langue d'ajout et celle du site d'administration, on affecte donc la valeur session("lgForm") la valeur de la langue du site session("lang")
If Not IsPostBack Then
Session("lgform") = Session("lang")
' Affichage des titres de sections necessitant l'affichage de la langue
AffiLang.Text = "Langue actuelle : " + Session("lgform") + " "
complement.Text = Style + "Complément (" + Session("lgform") + ")" + FStyle
titreDescri.Text = Style + "* Description (" + Session("lgform") + ")" + FStyle
lgEnviron.Text = "(" + Session("lgform") + ")"
End If

' Création du tableau
table.Text = "<table with='" + Session("TailleTabCentral") + "' bgcolor='" + Session("fondTabCentral") + "' boder='" + Session("TailleBordTabCent") + "' bordercolor='" + Session("BordureTabCentral") + "' align='center' valign='top' cellspacing='20'>"

' Affichage des titres de sections
type.Text = Session("type")
ModeTransac.Text = Session("ModeTransac")
bien.Text = Style + "Le bien" + FStyle
surface.Text = Style + "Surface (en m²)" + FStyle
Lieu.Text = Style + "Lieu" + FStyle
chargeTaxe.Text = Style + "charges-Taxes" + FStyle
titrePrix.Text = Style + "Prix" + FStyle
infoClient.Text = Style + "Informations client" + FStyle

' récupération des trois dropdownlist dans le fichier "/langues/FRA, ANG ou autres.../formRech.xml"
Dim XmlDoc As New XmlDocument
'chargement du document
XmlDoc.Load(Server.MapPath("..") + "\Langues" + Session("lang") + "\formRech.xml")
Dim List As XmlNodeList = XmlDoc.GetElementsByTagName("*")
Dim Xmlbien As XmlNode
Dim XmlAttri As XmlAttribute
Dim temp, Attribut, Tcivilite, Tcuisine, Tchauffage As String
Dim i, j, k As Integer
i = 0
j = 0
k = 0

' parcourt de toutes les balises xml
For Each Xmlbien In List
temp = Xmlbien.InnerText
' récupération de l'attribut de la balise en cour
For Each XmlAttri In Xmlbien.Attributes
Attribut = XmlAttri.Value
Next
'Context.Trace.Write("temp ???", temp)
' Remplissage des différents listes box (dropdownlist)
Select Case Xmlbien.Name
Case "cuisine"
'création des DropDownLists
cuisine.Items.Add(temp)
'affect a la liste box la valeur "value" du fichier Xml
cuisine.Items.Item(i).Value = Xmlbien.Attributes("value").Value()
i = i + 1
Case "chauffage"
chauffage.Items.Add(temp)
'affect a la liste box la valeur "value" du fichier Xml
chauffage.Items.Item(j).Value = Xmlbien.Attributes("value").Value()
j = j + 1
Case "civilite"
civilite.Items.Add(temp)
'affect a la liste box la valeur "value" du fichier Xml
civilite.Items.Item(k).Value = Xmlbien.Attributes("value").Value()
k = k + 1
End Select
Next
' destruction de l'objet XmlDocument pour gain de performance
XmlDoc = Nothing

'*************************************************************************************'
' Mise à I pour Insert et U pour Update, permet de savoir si c une insertion à faire où un update pour les clients et les biens
' IL pour Insert Langue et UL pour Update Langue, permet de faire les bonnes insertions avec les différentes langues

'On masque les boutons en fonction du mode (insertion ou modification)

' Les différents Modes
' mode = I concerne l'insertion d'un bien uniquement dans la première langue.
' mode = U concerne la mise à jour pour les modifs d'un bien dans la première langue.
' mode = IL concerne les insertion ou mise à jours des infos pour les langues suivante pendeant l'insertion d'un nouveau bien.
' mode = UL concerne les insertion ou mise à jours des infos pour les langues suivante pendeant la modification d'un bien.
' Le mode UL sert à ne pas rechercher les infos dans la base et à cacher les bons boutons

' pour l'update seul possibilitée de faire passer par URL donc test pour voir s'il s'agit d'un update
If Request("mode") = "U" Then
Session("mode") = Request("mode")
End If

Select Case Session("mode")
Case "I", "IL"
'mode insert
ajouter.Visible = True
modifier.Visible = False
AjoutPhoto.Visible = False
SuppBien.Visible = False
Case "UL"
'mode update
ajouter.Visible = False
modifier.Visible = True
AjoutPhoto.Visible = True
SuppBien.Visible = True
Case "U"
'mode update
ajouter.Visible = False
modifier.Visible = True
AjoutPhoto.Visible = True
SuppBien.Visible = True

'________Remplissage des champs pour modifications ou changement de lang ______
' Permet de remplir les champs des valeurs valeurs

Dim Conn As New SqlConnection(ConfigurationSettings.AppSettings("ConnexionDB"))
Dim ReqClt As New SqlCommand
Dim DR As SqlDataReader ReqClt.CommandText "SELECT * FROM Bien as B INNER JOIN Etat E ON B.IdBien E.IdBien INNER JOIN Client as C ON B.IdClient = C.IdClient WHERE B.IdBien='" + Request("bien") + "' AND E.langEtat='" + Session("lang") + "';"
ReqClt.Connection = Conn
Conn.Open()
DR = ReqClt.ExecuteReader

While DR.Read
' conversion de certain champs en int pour régler
' le problème des contrôles sur certain champs
reference.Text = DR("referenceBien")
type.Text = DR("TypeBien")
ModeTransac.Text = DR("ModeTransac")
Nbannee.Text = CInt(DR("AnConstruction"))
designation.Text = DR("designation")
NbPiece.Text = CInt(DR("NbPiece"))
NbSDB.Text = CInt(DR("SDB"))
NbWC.Text = CInt(DR("WC"))
NbCave.Text = CInt(DR("Cave"))
NbGarage.Text = CInt(DR("Garage"))
surfaceHab.Text = CInt(DR("surfaceHabitable"))
surfaceTotale.Text = CInt(DR("surfaceTotale"))
surfaceJardin.Text = CInt(DR("Jardin"))
surfaceTerrain.Text = CInt(DR("Terrain"))
embellissement.Text = DR("embelissement")
GrosTrav.Text = DR("GrosTravaux")
plomberie.Text = DR("plomberie")
electricite.Text = DR("electricite")
Autres.Text = DR("Autres")
Adr1.Text = DR("Adr1Bien")
Adr2.Text = DR("Adr2Bien")
CP.Text = DR("CpBien")
ville.Text = DR("villeBien")
pays.Text = DR("PaysBien")
environs.Text = DR("environs")
charge.Text = DR("charges")
taxeFonciere.Text = DR("taxeFonciere")
taxeHab.Text = DR("taxeHabitation")
prix.Text = DR("prix")
descri.Text = DR("description")
nomClt.Text = DR("nomClt")
prenomClt.Text = DR("prenomClt")
adrClt.Text = DR("adrClt")
cpClt.Text = DR("cpClt")
villeClt.Text = DR("villeClt")
paysClt.Text = DR("paysClt")
telClt.Text = DR("TelClt")
emailClt.Text = DR("emailClt")
CommentaireClt.Text = DR("CommentaireClt")
Tcivilite = DR("civiliteClt")
Tcuisine = DR("cuisine")
Tchauffage = DR("chauffage")
Session("IdClient") = DR("IdClient")
context.Trace.Write("passe par par la")
End While
DR.Close()
Conn.Close()
' ----- Positionnement des dropdownlist à la bonne valeur pour la civilité -----
i = civilite.Items.Count

Dim a, indexfinal As Integer
Dim valeurddl As String

For a = 0 To i - 1 ' parcours mes items
civilite.SelectedIndex = a ' je me positionne sur l'item en cours
valeurddl = civilite.SelectedItem.Value ' je sélectionne sa valeur
If valeurddl = Tcivilite Then ' je contrôle sa valeur
indexfinal = a ' si c'est elle, je fixe l'index
Exit For ' je quitte la boucle si ok, histoire de ne pas tourner pour rien ;)
End If
Next

civilite.SelectedIndex = indexfinal ' je positionne mon index de ddl
' Positionnement des dropdownlist à la bonne valeur pour la cuisine----------
i = cuisine.Items.Count

For a = 0 To i - 1 ' parcours mes items
cuisine.SelectedIndex = a ' je me positionne sur l'item en cours
valeurddl = cuisine.SelectedItem.Value ' je sélectionne sa valeur
If valeurddl = Tcuisine Then ' je contrôle sa valeur
indexfinal = a ' si c'est elle, je fixe l'index
Exit For ' je quitte la boucle si ok, histoire de ne pas tourner pour rien ;)
End If
Next

cuisine.SelectedIndex = indexfinal ' je positionne mon index de ddl
' Positionnement des dropdownlist à la bonne valeur pour le chauffage ----------
i = chauffage.Items.Count

For a = 0 To i - 1 ' parcours mes items
chauffage.SelectedIndex = a ' je me positionne sur l'item en cours
valeurddl = chauffage.SelectedItem.Value ' je sélectionne sa valeur
If valeurddl = Tchauffage Then ' je contrôle sa valeur
indexfinal = a ' si c'est elle, je fixe l'index
Exit For ' je quitte la boucle si ok, histoire de ne pas tourner pour rien ;)
End If
Next
chauffage.SelectedIndex = indexfinal ' je positionne mon index de ddl
End Select '___Fin du choix du mode ___

'End If '_______FIN_____________Remplissage des champs pour modifications ou changement de lang

' Test du "mode de transaction" pour cacher les valeurs non utiles à la location
If ModeTransac.Text = "Location saisonnière" Then
divCompl.Visible = False

divCharge.Visible = False
locSais.Text = "Location saisonnière"
locSais.Visible = True

divPrix.Visible = False
prixLocSais.Text = "A déterminer en fonction de la durée et de la saison"
prixLocSais.Visible = True
End If '___FIN__Test du "mode de transaction" pour cacher les valeurs non utiles à la location
context.Trace.Write("sess idbien fin page Load", Session("IdBien"))
context.Trace.Write("sess idclient fin page Load", Session("IdClient"))

End Sub

'lorsque l'on click pour enregitrer un nouveau bien
Sub ajouter_click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ajouter.Click
context.Trace.Write("sess idbien debut fonction ajouter", Session("IdBien"))
' Connexion utilisé pour accéder à la base du site d'immobilier.
Dim Conn As New SqlConnection(ConfigurationSettings.AppSettings("ConnexionDB"))
Dim ReqClt As New SqlCommand
Dim resultReader As SqlDataReader
Dim Nbresult, cpt As Integer
Dim idBien, idClient, dept As String
idBien = ""
idClient = ""
cpt = 0

' Doublage des cotes dans toutes les zones de texte pour éviter les erreurs d'insertion
' Déclaration des variables temporaire(T + nom du champ)
Dim TnomClt, TprenomClt, TadrClt, TvilleClt, TpaysClt, TCommentaireClt, Treference, TAdr1, TAdr2, Tville, Tpays, Tdesignation, Ttype, TModeTransac, Tcuisine, Tchauffage, TEmbellissement, TGrosTrav, Tplomberie, Telectricite, TAutres, Tdescri, Tenvirons As String

' Remplacement des côtes par des boubles côtes
TnomClt = Replace(nomClt.Text, "'", "''")
TprenomClt = Replace(prenomClt.Text, "'", "''")
TadrClt = Replace(adrClt.Text, "'", "''")
TvilleClt = Replace(villeClt.Text, "'", "''")
TpaysClt = Replace(paysClt.Text, "'", "''")
TCommentaireClt = Replace(CommentaireClt.Text, "'", "''")
Treference = Replace(reference.Text, "'", "''")
TAdr1 = Replace(Adr1.Text, "'", "''")
TAdr2 = Replace(Adr2.Text, "'", "''")
Tville = Replace(ville.Text, "'", "''")
Tpays = Replace(pays.Text, "'", "''")
Tdesignation = Replace(designation.Text, "'", "''")
Ttype = Replace(type.Text, "'", "''")
TModeTransac = Replace(ModeTransac.Text, "'", "''")
Tcuisine = Replace(cuisine.SelectedItem.Value, "'", "''")
Tchauffage = Replace(chauffage.SelectedItem.Value, "'", "''")
TEmbellissement = Replace(embellissement.Text, "'", "''")
TGrosTrav = Replace(GrosTrav.Text, "'", "''")
Tplomberie = Replace(plomberie.Text, "'", "''")
Telectricite = Replace(electricite.Text, "'", "''")
TAutres = Replace(Autres.Text, "'", "''")
Tdescri = Replace(descri.Text, "'", "''")
Tenvirons = Replace(environs.Text, "'", "''")

' Définie la base sur laquel effectuer la requete
ReqClt.Connection = Conn
context.Trace.Write("sess clt avant", Session("IdClient"))
'Try
'Gestion des clients************************************************
If Session("mode") = "I" Then
' ATTENTION INSERTION AVANT VERIFICATION D'EXISTANCE
' Requete d'insertion des informations sur le clients**************************************
If Verif_Client(nomClt.Text, prenomClt.Text, TadrClt, cpClt.Text) = 0 Then
context.Trace.Write("client inexistant", "no clt")
'si le client n'existe pas deja
ReqClt.CommandText = "INSERT INTO CLIENT (CiviliteClt,NomClt,PrenomClt,AdrClt,CPClt,VilleClt,PaysClt,TelClt,EmailClt,CommentaireClt) VALUES ('" + civilite.SelectedItem.Value + "','" + TnomClt + "','" + TprenomClt + "','" + TadrClt + "','" + cpClt.Text + "','" + TvilleClt + "','" + TpaysClt + "','" + telClt.Text + "','" + emailClt.Text + "','" + TCommentaireClt + "');"
Conn.Open()
' execution de la requete sur table CLIENT
ReqClt.ExecuteNonQuery()
Conn.Close()
' ici, vérif_client() permet de récupérer l'id du nouveau client
context.Trace.Write("id du client avec fonction", Verif_Client(nomClt.Text, prenomClt.Text, TadrClt, cpClt.Text))
Session("IdClient") = Verif_Client(nomClt.Text, prenomClt.Text, TadrClt, cpClt.Text)
Else
context.Trace.Write("client existant", "clt ok")
'si le client existe deja
'on recupere l'IdCLient du client deja existant ReqClt.CommandText "SELECT idclient FROM client WHERE nomClt '" + TnomClt + "' AND prenomClt ='" + TprenomClt + "' ; "
Conn.Open()
resultReader = ReqClt.ExecuteReader
resultReader.Read()
'et on la met en session
Session("IdClient") = resultReader.GetValue(0)
resultReader.Close()
Conn.Close()
End If
End If

' récupération des 2 ou 3 (dom-tom) premiers chiffres des codes postaux pour récupe nom du departement
dept = Microsoft.VisualBasic.Left(CP.Text, 2)
If dept = "97" Then
dept = Microsoft.VisualBasic.Left(CP.Text, 3)
End If

'Connexion utilisé pour accéder à la base pour récupération du nom du département
Dim ConnDept As New SqlConnection(ConfigurationSettings.AppSettings("ConnexionDepartement"))
Dim ReqDept As New SqlCommand("SELECT département FROM départements WHERE nodepartement='" + dept + "';", ConnDept)
ConnDept.Open()
resultReader = ReqDept.ExecuteReader()
While resultReader.Read
dept = resultReader.GetValue(0)
End While
resultReader.Close()
' replace évite les erreurs du aux côtes (')
dept = Replace(dept, "'", "''")
ConnDept.Close()
'_______ Fin de recup du departement________________________

If Session("mode") = "I" Then ' si c'est le premier chargement INSERT
context.Trace.Write("mode = i")
' Vérification de l'unicitée du bien_______________________
context.Trace.Write("req", ReqClt.CommandText) ReqClt.CommandText "SELECT * FROM BIEN WHERE referenceBien'" + Treference + "';"
Conn.Open()
resultReader = ReqClt.ExecuteReader
While resultReader.Read
cpt = cpt + 1
End While
resultReader.Close()
If cpt > 0 Then
'signifie qu'il existe déjà une référence identique dans la table BIEN. Annule l'insertion
Response.Redirect("http://www.google.fr")
Else
' si le bien n'existe pas déjà
' Insertion du bien dans la base
idClient = Session("IdClient")
ReqClt.CommandText = "INSERT INTO BIEN (referenceBien,adr1Bien,adr2Bien,CPBien,VilleBien,DptBien,PaysBien,Designation,TypeBien,ModeTransac,SurfaceHabitable,SurfaceTotale,NbPiece,Prix,AnConstruction,Cuisine,Chauffage,SDB,WC,Cave,Garage,Jardin,Terrain,Charges,TaxeFonciere,TaxeHabitation,IdClient) VALUES ('" + Treference + "','" + TAdr1 + "','" + TAdr2 + "','" + CP.Text + "','" + Tville + "','" + dept + "','" + Tpays + "','" + Tdesignation + "','" + Ttype + "','" + TModeTransac + "','" + surfaceHab.Text + "','" + surfaceTotale.Text + "','" + NbPiece.Text + "','" + prix.Text + "','" + Nbannee.Text + "','" + Tcuisine + "','" + Tchauffage + "','" + NbSDB.Text + "','" + NbWC.Text + "','" + NbCave.Text + "','" + NbGarage.Text + "','" + surfaceJardin.Text + "','" + surfaceTerrain.Text + "','" + charge.Text + "','" + taxeFonciere.Text + "','" + taxeHab.Text + "','" + CStr(Session("IdClient")) + "');"
context.Trace.Write("req insert bien", ReqClt.CommandText)
ReqClt.ExecuteNonQuery()
'récupération de l'identificateur du bien pour insertion de l'etat.
ReqClt.CommandText = "SELECT IdBien FROM BIEN WHERE referenceBien='" + reference.Text + "';"
context.Trace.Write("req", ReqClt.CommandText)
resultReader = ReqClt.ExecuteReader
While resultReader.Read
idBien = resultReader.GetValue(0)
context.Trace.Write("variable id bien", idBien)
End While
resultReader.Close()
'on recupere l'IdBien du bien que l'on vien d'inserer
Session("IdBien") = idBien
context.Trace.Write("session Id Bien dans insert = ", Session("IdBien"))
' ________ Insertion de l'état ___________
ReqClt.CommandText = "INSERT INTO ETAT (langEtat,Embelissement,GrosTravaux,Plomberie,Electricite,Autres,Description,Environs,IdBien) VALUES ('" + Session("lgForm") + "','" + TEmbellissement + "','" + TGrosTrav + "','" + Tplomberie + "','" + Telectricite + "','" + TAutres + "','" + Tdescri + "','" + Tenvirons + "','" + Session("IdBien") + "');"
context.Trace.Write("req ", ReqClt.CommandText)
ReqClt.ExecuteNonQuery()
Conn.Close()

'Insertion d'une stat ajout bien dans la table Stats(numaction =1)
Ajout_Stat(Session("User"), 1)
End If ' __________ Fin vérification unicitée___________
End If

If Session("mode") = "IL" Then ' Mise à jour des champs pour client, bien et insert pour état
context.Trace.Write("mode = il")
' Requete de mise à jour des infos si changement des infos dans une autre langue. ReqClt.CommandText "UPDATE CLIENT SET CiviliteClt '" + civilite.SelectedItem.Value + "', NomClt = '" + TnomClt + "', PrenomClt = '" + TprenomClt + "', adrClt = '" + TadrClt + "', CPclt = '" + cpClt.Text + "', VilleClt = '" + TvilleClt + "', paysClt = '" + paysClt.Text + "', TelClt = '" + telClt.Text + "', EmailClt = '" + emailClt.Text + "', CommentaireClt = '" + TCommentaireClt + "' WHERE IdClient = '" + CStr(Session("IdClient")) + "';"
context.Trace.Write("req", ReqClt.CommandText)

Conn.Open()
' execution de la requete sur table CLIENT
ReqClt.ExecuteNonQuery()

'UPDATE de la table Bien ReqClt.CommandText "UPDATE BIEN SET referenceBien '" + Treference + "', adr1Bien='" + TAdr1 + "' , adr2Bien='" + TAdr2 + "', CPBien='" + CP.Text + "', VilleBien='" + Tville + "', DptBien='" + dept + "', PaysBien='" + Tpays + "', Designation='" + Tdesignation + "', TypeBien='" + Ttype + "', ModeTransac='" + TModeTransac + "', SurfaceHabitable='" + surfaceHab.Text + "', SurfaceTotale='" + surfaceTotale.Text + "', NbPiece='" + NbPiece.Text + "', Prix='" + prix.Text + "', AnConstruction='" + Nbannee.Text + "', Cuisine='" + Tcuisine + "', Chauffage='" + Tchauffage + "', SDB='" + NbSDB.Text + "', WC='" + NbWC.Text + "', Cave='" + NbCave.Text + "', Garage='" + NbGarage.Text + "', Jardin='" + surfaceJardin.Text + "', Terrain='" + surfaceTerrain.Text + "', Charges='" + charge.Text + "', TaxeFonciere='" + taxeFonciere.Text + "', TaxeHabitation='" + taxeHab.Text + "' WHERE IdBien ='" + Session("IdBien") + "';"
context.Trace.Write("req", ReqClt.CommandText)

' Execution de la requete
ReqClt.ExecuteNonQuery()

'Insertion de l'état
ReqClt.CommandText = "INSERT INTO ETAT (langEtat,Embelissement,GrosTravaux,Plomberie,Electricite,Autres,Description,Environs,IdBien) VALUES ('" + Session("lgForm") + "','" + TEmbellissement + "','" + TGrosTrav + "','" + Tplomberie + "','" + Telectricite + "','" + TAutres + "','" + Tdescri + "','" + Tenvirons + "','" + Session("IdBien") + "');"
context.Trace.Write("req", ReqClt.CommandText)

ReqClt.ExecuteNonQuery()

Conn.Close()
'___fin enreg dans la base

End If

' Catch
' Response.Redirect("admin.ascx?page=erreurDB")
' End Try
' ___fin enreg dans la base


Session("mode") = "IL"
context.Trace.Write("session mode", Session("mode"))
context.Trace.Write("session idbien avant affi langue", Session("IdBien"))

' fonction permettant de gérer les langues
affi_lang()
context.Trace.Write("session idbien apres affi langue", Session("IdBien"))

End Sub ' Fin fonction ajout

'pour ajouter une statistique
Private Sub Ajout_Stat(ByVal iduser As Integer, ByVal action As Integer)
Dim Conn As New SqlConnection(ConfigurationSettings.AppSettings("ConnexionDB"))
Dim ReqResult As New SqlCommand
ReqResult.Connection = Conn
ReqResult.CommandText = "INSERT INTO [Stats] (IdUser,numaction,date) "
ReqResult.CommandText += "VALUES ('" & iduser & " ', '" & action & "', CURRENT_TIMESTAMP );"
context.Trace.Write("req stat", ReqResult.CommandText)
Conn.Open()
ReqResult.ExecuteNonQuery()
Conn.Close()
End Sub

'verif si le client existe deja 'renvoi zero si le client n'existe pas deja
Function Verif_Client(ByVal nom As String, ByVal prenom As String, ByVal adr As String, ByVal cp As String) As Integer
Dim Conn As New SqlConnection(ConfigurationSettings.AppSettings("ConnexionDB"))
Dim ReqClt As New SqlCommand
Dim resultReader As SqlDataReader
Dim cpt, id As Integer
id = 0
ReqClt.Connection = Conn ReqClt.CommandText "SELECT IdClient, NomClt, PrenomClt FROM Client WHERE NomClt'" & nom & "' AND PrenomClt = '" & prenom & "' AND AdrClt= '" & adr & "' AND CPClt='" & cp & "';"
Conn.Open()
resultReader = ReqClt.ExecuteReader
While resultReader.Read
cpt = cpt + 1
id = resultReader.GetValue(0)
End While
resultReader.Close()
'If cpt > 0 Then
'signifie qu'il existe déjà un client identique dans la table client
Return (id)
' __________ Fin vérification unicitée___________
'Else
' Return (id) 'renvoi zero si le client n'existe pas deja
'End If
End Function

'Affichage des résultats
Private Sub affi_lang()
'_____________ Processus pour réafficher le formulaire pour la langue suivante_________
'Parcourt du dossier langues de la partie utilisateur pour récupération des langues.
Dim Dir As New DirectoryInfo(Server.MapPath("../langues/"))
Dim SubDir As DirectoryInfo
Dim TabLang As New ArrayList
Dim maxtab As Integer

' parcourt des sous dossier du rep "langues".
For Each SubDir In Dir.GetDirectories
' Mise en Array list des différents noms de langue.
TabLang.Add(SubDir.Name)
Next

maxtab = TabLang.Count
context.Trace.Write("max tab???", maxtab)
context.Trace.Write("Session(cptlg)", Session("cptlg"))
'If Session("cptlg") > maxtab Then
' Session("cptlg") = 0
'Response.Redirect("admin.aspx")
'End If

' test pour etre sur que le cptlg ne soit pas supérieur au tableau
If Session("cptlg") < maxtab - 1 Then
'Test pour voir si la valeur de la prochaine langue à afficher n'est pas celle par défaut.
If Session("lang") = TabLang(Session("cptlg")) Then
'si la derniere langue n'est pas celle par défaut, on traite sinon on passe
If Session("cptlg") < maxtab - 1 Then
'si prochaine lang = langue par defaut, on saute la langue et on affiche la suivante.
Session("lgForm") = TabLang(Session("cptlg") + 1)
Session("cptlg") = Session("cptlg") + 2
Else
Response.Redirect("admin.aspx")
End If
Else
' Sinon on met en session la prochaine langue à afficher.
Session("lgForm") = TabLang(Session("cptlg"))
Session("cptlg") = Session("cptlg") + 1

End If

'Style, FStyle = soulignement des titres
Dim Style, FStyle As String
Style = "
"
FStyle = "
"

' Affichage de la langue actuelle ainsi que des titres nécéssitant l'option lang
AffiLang.Text = "Langue actuelle : " + Session("lgform") + " "
complement.Text = Style + "Complément (" + Session("lgform") + ")" + FStyle
titreDescri.Text = Style + "* Description (" + Session("lgform") + ")" + FStyle
lgEnviron.Text = "(" + Session("lgform") + ")"

Else
Response.Redirect("admin.aspx")
End If
'__________ Fin du processus de langues ______________
End Sub
End Class

1 réponse

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
2 sept. 2004 à 19:44
dsl mais ton code est un peu long, et je pense que peu de gens auront le courage de le lire, à l'avenir essaye de montrer juste l'endroit du code ou ca ne marche pas.

Sinon j'ai pas tres bien compris le problème, et surtout ou est le problème :)

tu pourrais nous dire l'erreur que tu as, s'il y en a une bien sur, et qu'est-ce qui te permet de dire que la variable session est perdu.

j'attend donc quelque precision concernant ton problème afin de pouvoir t'aider

@+

Cyril
0
Rejoignez-nous