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] [1.1] affichage d'un label dans le pageload sub


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 25
    Par défaut [vb.net] [1.1] affichage d'un label dans le pageload sub
    Hello ,

    je reviens vers vous pour solliciter vos connaissances..

    mon problème est le suivant : Je recupère le login du client et ensuite je fais une requete vers un DB SQL pour avoir le nom complet correspondant a ce login et affiche le tout dans un label .. tout cela dans le pageload sub ..

    Seulement le truc c'est que le nom s'affiche seulement après un page refresh (F5) .. et je ne comprends pas pourquoi .. si je remplace le contenu du label par un string tout con genre "test" il n'y pas de soucis..

    quelqu'un aurait une soluce ?

    voici le 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    Imports System
    Imports System.Web
    Imports System.Web.SessionState
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    Imports System.Web.UI.HtmlControls
    Imports System.Collections
    Imports System.Configuration
    Imports System.Data
    Imports System.Data.SqlClient
    Imports System.Drawing
    Imports Microsoft.Visualbasic
    Imports System.Web.Mail
     
    Namespace System.Data.SqlTypes
     
    End Namespace
     
    Namespace SendMail
    End Namespace
     
    Public Class cambio
        Inherits System.Web.UI.Page
     
     
     
     
        Protected WithEvents lblpickupDate As System.Web.UI.WebControls.label
        Protected WithEvents pickupLocation As System.Web.UI.WebControls.DropDownList
        Protected WithEvents lblbringInDate As System.Web.UI.WebControls.Label
        Protected WithEvents sofwares As System.Web.UI.WebControls.TextBox
        Protected WithEvents chk_sofwares As System.Web.UI.WebControls.CheckBox
        Protected WithEvents chk_otherDate As System.Web.UI.WebControls.CheckBox
        Protected WithEvents wich_soft As System.Web.UI.WebControls.TableCell
        Protected WithEvents choose_oth_date As System.Web.UI.WebControls.Label
        Protected WithEvents lbllogon As System.Web.UI.WebControls.Label
        Protected WithEvents otherdate As System.Web.UI.WebControls.Textbox
        Protected WithEvents reason4otherdate As System.Web.UI.WebControls.Label
        Protected WithEvents other_date As System.Web.UI.WebControls.Textbox
     
        Protected WithEvents img_calendar As System.Web.UI.HtmlControls.HtmlImage
     
     
        'Executed on page load
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            Dim name As String
     
     
     
            'Only execute the first time the page loads (performance)
     
            'get the logon informations
            name = Request.ServerVariables("LOGON_USER")
     
            name = UCase(TrimStartStr(name, "NTCH01\"))
     
            Dim connection As New SqlConnection()
     
            'get the connection infos from webconfig 
            connection.ConnectionString = ConfigurationSettings.AppSettings("sqlServer")
     
     
     
     
            'build the query
            Dim strClientName As String
            Dim s As String = "SELECT [Client Name] FROM dbo.MasterData WHERE Login = '"
            s = s & name
            s = s & "'"
     
     
     
            'Execute the query
            Dim myCommand As New SqlCommand(s, connection)
            connection.Open()
            Dim myReader As SqlDataReader
            myReader = myCommand.ExecuteReader()
     
            'Enter the query data into session variables and then redirect to the actual page to create a new RO
            While myReader.Read()
                Try
     
                    strClientName = myReader("Client Name")
                Catch
                    myReader.Close()
                    connection.Close()
                End Try
            End While
     
     
     
     
            If len(strClientName) <> 0 Then
                name = strClientName
                lbllogon.text = name
     
            End If
            'lbllogon.text = "Test"
     
            lbllogon.Visible = True
     
            myReader.Close()
            connection.Close()
     
     
     
        End Sub

    merci d'avance..

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    581
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 581
    Par défaut
    d'abord met tout ton code entre if (!IsPostBack)
    pour être sur qu'il n'y passe qu'une fois.
    Ensuite, pourquoi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
            If len(strClientName) <> 0 Then
                name = strClientName ?????
                lbllogon.text = name
     
           => lblLogon.text = strClientName
    c'est une variable créé pour rien, c'est bien sur que faire une comparaison sur la longueure est bonne ? au lieu de faire un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    if(!String.IsNullOrEmpty(strClientName)) // 2.0

    Fix

  3. #3
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 25
    Par défaut
    Okay.. merci pour ta réponse rapide..

    Alors j'ai mis tout la sub entre

    "if not ispostback

    end if"

    mais cela ne change pas.. toujours obligé de faire un refresh.. peut-etre que c'est le serveur SQL qui met trop de temps a retourner la valeur ??

    pour le test sur la longueur j'ai pas trouvé mieux pour l'instant.. car je débute.. et en plus je bosse sur le framework 1.1 et j'ai vu que ta proposition était du 2.0

    sinon je sèche toujours..

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/10/2011, 15h23
  2. [VB.NET] Probleme d'affichage entre ListBox/TextBox
    Par Monster77 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/08/2004, 11h02
  3. [VB.NET] Probleme d'affichage de controle
    Par mic56 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/06/2004, 15h03
  4. [C#] Affichage resultat de requete dans 2 Labels
    Par kenzo080 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 02/06/2004, 20h07
  5. [CR][ASP.NET] Problème d'affichage du rapport
    Par David.V dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 20/04/2004, 12h39

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