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

VB.NET Discussion :

Caractères et longueur


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club Avatar de ideox
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2014
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2014
    Messages : 47
    Points : 32
    Points
    32
    Par défaut Caractères et longueur
    Bonsoir,
    Quelqu'un sais comment limiter des caractères dans un textbox ? Example j'ai un colone de ma table qui est INT donc pas de text dedans quoi donc autoriser seulement les chiffres POUR cette textbox, Ainsi aussi la longueur des caractère j'ai des colonnes en varchar(20) par exemple. De ce fait si une text box est trop longue hop X bouton est blocker

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    pour les caracteres, le plus simple est de faire un tryparse vers int et si il n'arrive pas a parser cela veux dire que ce n'est pas un nombre,
    pour la longueur de champs les textboxs ont une propriete lenght qui permet de definir la longueur.

    Enfin si tu cherches un vrai belle solution cela depand de la plate forme :
    pour wpf extended toolkit, par exemple
    pour aspnet, des validators font l'affaire ou des controles gratuits sont possibles.
    pour asp.mvc, jquery validate est une bonne option

    cote server, la plus efficace est la version avec attributs et utilisations de la reflexion.

  3. #3
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Tu peux regarder du côté du control MaskedTextBox. Ce lien pointe vers la version pour WinForms. Si tu fais du WPF, tu en trouveras sur ton moteur de recherche préféré en cherchant "WPF MaskedTextBox".

    Si tu es en ASP.NET WebForms, tu peux utiliser le control MaskedEdit de la librairie AjaxControlToolkit. Enfin, si tu es en ASP.NET MVC, le mieux est de regarder du côté de jQuery.

    Le principe c'est de définir un masque qui permettra de limiter la saisie de l'utilisateur, et éventuellement d'y appliquer un format particulier (ex. pour un numéro de téléphone). A noter, ce n'est pas parce que côté client tu utilises ce type de control que tu ne dois pas revalider côté serveur
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  4. #4
    Nouveau membre du Club Avatar de ideox
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2014
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2014
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    Bonjour, je suis en VB.NET

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par ideox Voir le message
    Bonjour, je suis en VB.NET
    Merci on avait bien compris Mais ca ne nous indique toujours pas quelle est la techno que tu utilises, VB.NET c'est juste le language que tu utilises.

    WinForms, WPF, ASP.NET WebForms, ASP.NET MVC... ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Nouveau membre du Club Avatar de ideox
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2014
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2014
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    WinForm

  7. #7
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Bonjour,

    Il y a deux façon de voir les choses, de ce que j'ai cru comprendre :

    -> Obliger l'utilisateur à ne saisir QUE ce qu'il peut : par exemple 5 numériques, du coup, pas besoin de contrôler les données suite à une saisie.
    Ça peut se faire vie la MaskedTextBox, on lui indique le format de la chaîne attendu.
    Ca peut aussi se faire "à la main" : tu interceptes l’événement KeyPress du Textbox, et tu ne valide l’événement que si tu es dans tes clous (mais ça revient finalement au maskedtextbox)

    -> Ou après coup, si tu as beaucoup de textbox, et que tu ne souhaites pas contrôler juqu'à la saisis, mais juste le résultat, la tu interceptes le TextChanged du TExtbox, tu vérifies la validité de la chaine avec les outils classiques (IsNumeric, Regex, Textbox.Text.Length) et en fonction tu rends Enabled ou pas X boutons
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  8. #8
    Nouveau membre du Club Avatar de ideox
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2014
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2014
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    Dans mon cas cela serait la deuxième chose, je veux juste que certaines textbox n'accepte genre uniquement des lettre et d'autre que des chiffre avec pour certaines (je parle des lettre) une certaine longueur du au varchar(16) par exemple

  9. #9
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Et bien à ce moment, sur le clique de ton bouton "sauvegarder", tu déclenches en premier une procédure (ValideData) qui va aller vérifier le format de tous tes textboxs d'un coup, et signaler à l'utilisateur les éventuelle problème.

    Je te donne un exemple, après tu fais à ta sauce :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Button_Sauvegarder_Click(....) HAndles Button_Sauvegarder.Click
     
        If ValideData() = True then
     
                SaveData()
     
        End If
     
    End Sub
    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
    Private Function ValideData() as Boolean
     
        If OnlyLetters(TextboxName.text) = False Then
             Msgbox("Le champs nom ne doit contenir que des lettres")
             Return False
        End If
     
        If TextboxName.text.Length >20 Then
             Msgbox("Le champs nom se limite à 20 caractères")
             Return False
        End If
     
        If not IsNumeric(TextboxNum.text) Then
             Msgbox("Le champs num ne doit contenir que des chiffres")
             Return False
        End If
     
     
        'Si aucun problème 
        Return True
     
    End Function
    On en peut faire guère plus simple
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  10. #10
    Nouveau membre du Club Avatar de ideox
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2014
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2014
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    Merci j'ai tous ! fin presque il me manque par exemple il peut entrer une valeur uniquement comprise entre 1 < 255 l'équivalent en php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(strlen($username) < 1 || strlen($username) > 255){
    		$errors[] = 'Ne peut contenir qu'entre 1 et 255.';
    	}
    PS : en sois dans ma table x chiffre pour cette colonne mes égale juste qu'un autre programm (assembly) n'accepte pas plus de 255 en valeur et il est en relation avec cette table encore plus avec cette colonne!

    Merci

  11. #11
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Et bien.... C'est pas très dur à trouver :
    1) Tu transforme ton Texte en Integer
    2) Tu testes la valeurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim result as integer 
    Integer.tryparse (TextboxNum.Text,result)
     
    if result<1 or result > 255 Then
     
    End If
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  12. #12
    Nouveau membre du Club Avatar de ideox
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2014
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2014
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    Merci

  13. #13
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Euh... Y a personne à qui le NumericUpDown vient à l'esprit ?


    • Ca ne permet d'encoder que des nombres.
    • On a le choix du nombre de chiffres après la virgule
    • On peut définir un minium et un maximum
    • On peut même définir la valeur d'incrément (ça m'a par exemple été utile pour compter des minutes par quart d'heure)


    Bref, utiliser un TextBox pour encoder des valeurs exclusivement numériques, moi je trouve ça con...
    Kropernic

  14. #14
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    C'est pas faux. Je plussoie
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 10/02/2015, 08h47
  2. Traitement tableaux de caractères de longueur fixe
    Par masoum dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 31/10/2012, 07h34
  3. Réponses: 4
    Dernier message: 15/12/2011, 16h59
  4. Caractères et longueur d'un champ d'index
    Par Richard Trigaux dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 11/02/2008, 10h21
  5. Réponses: 1
    Dernier message: 30/04/2007, 15h33

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