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 :

ORA-01756: une chaîne entre apostrophes ne se termine pas correctement champs MDP


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut ORA-01756: une chaîne entre apostrophes ne se termine pas correctement champs MDP
    Bonjour,

    Je crée un formulaire d'identification pour pouvoir se connecter à ma BD, en essayant de sécurisé le mot de passe, j'ai utilisé un regex qui valide seulement les chiffres et les lettres ça semble fonctionner sauf que quand je met une apostrophe dans le champs mot de passe ça me donne l'erreur ORA-01756: une chaîne entre apostrophes ne se termine pas correctement

    Comment je pourrais régler ceci ? J'ai cru qu'avec les regex tout mes problèmes sont résolus

    Merci pour votre aide.

    Voici mon code pour le bontton valider.

    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
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click$
     
            If Validchaine() Then
                'Validechaine la fonction qui vérifie la saisie des chiffres/lettres
                con()
                cmd = conn.CreateCommand
                sql = "SELECT login,pwd FROM users where login='" & T1.Text & "' and pwd='" & T2.Text & "'"
                cmd.CommandText = sql
                myreader = cmd.ExecuteReader()
                If myreader.Read() And C1.Text = "ADMINISTRATEUR" Then
                    MsgBox("Connexion réussie an tant qu'ADMINISRATEUR !")
                    Me.Hide()
                    menu_principal_admin.Show()
                ElseIf myreader.Read And C1.Text = "INVITE" Then
                    MsgBox("Connexion réussie en tant qu'invité !")
                    Me.Hide()
                    Menu_invite.Show()
                ElseIf myreader.Read And C1.Text = "ARBITRE" Then
                    MsgBox("Connexion réussie en tant qu'arbitre !")
                    Me.Hide()
                    Menu_arbitre.Show()
                Else
                    MsgBox("Identificateurs invalides")
                End If
                myreader.Close()
                deconn()
            Else
                MsgBox("Error : Vous ne pouvez saisir que des chiffres et lettres.")
            End If
     
        End Sub

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    la meme question est posée plusieurs fois par semaine ...

    utilises des dbparameters

    fait une recherche sur le forum vb.net si tu veux en savoir plus (ce problème arrive avec tous les sgbdr)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut
    Merci pour ta réponse.

    Vous m'avez déjà parler des dbparamètres mais j'ai pas trouvé et j'ai pas su comment les utilisés. S'il y a un exemple d'usage simple ça serait plus courte comme réponse.

    Merci encore.

    EDIT : je viens de régler le problème avec les regex seulement mais je veux bien savoir plus sur les dbparamètres si possible.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    c'est pourtant simple et y a des tutos partout


    les parameters se situent sur l'objet command
    on peut ajouter autant de parameters qu'on veut, un parameter possède (surtout) un nom, un type et une valeur (le reste n'est utile que dans certains cas, comme les paramètres de sorties, mais ici c'est des paramètres d'entrées qu'il te faut)

    la requete sera ensuite de forme générique, sans concaténation
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rq = "select * from machin where bidule = '" & strvalue & "'"
    on se retrouve avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rq = "select * from machin where bidule = @str"
    ici @str est une variable dans le sgbdr
    il suffit de la définir avant d'executer la requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim p as parameter = moncmd.parameters.Add("@str",varchar)
    p.value = strvalue
    de cette facon si le string dans vb contient un ' la requete fonctionnera quand meme

    à mon sens les parameters sont obligatoires pour les string, les dates, et tout ce qui est saisie par l'utilisateur
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut
    Toujours des explications bien faites.

    Merci.

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

Discussions similaires

  1. [11gR2] Message "Une chaîne entre apstrophes ne se termine pas bien"
    Par juju05 dans le forum Oracle
    Réponses: 6
    Dernier message: 05/07/2015, 10h33
  2. QFile : récupérer une chaîne entre guillemets
    Par juniordev dans le forum Débuter
    Réponses: 3
    Dernier message: 07/10/2014, 14h09
  3. [WD15] Remplacement d'une chaîne entre %% coupée par un RC
    Par forca dans le forum WinDev
    Réponses: 3
    Dernier message: 22/09/2010, 13h39
  4. [RegEx] Récuperer une chaîne entre deux tags
    Par tixweb dans le forum Langage
    Réponses: 12
    Dernier message: 23/04/2007, 12h46
  5. [Tableaux] Extraire une chaîne entre des < et >
    Par DocCoinCoin dans le forum Langage
    Réponses: 4
    Dernier message: 02/11/2006, 14h54

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