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 :

récupérer la valeur d'un champ auto-incrémente


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    génie logiciel
    Inscrit en
    Mars 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : génie logiciel

    Informations forums :
    Inscription : Mars 2012
    Messages : 113
    Points : 21
    Points
    21
    Par défaut récupérer la valeur d'un champ auto-incrémente
    bonjour,
    je voudrai récupérer le code d'un élément sélectionné dans un combobox comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Try
                cn.Open()
                cmd2 = New SqlCommand("select code_chantier,intitule from chantier where intitule='" & ComboBox1.SelectedItem & "';", cn)
                code = cmd2.ExecuteScalar
                'cmd = New SqlCommand("insert into drs_cls(code_chantier,larg,haut,pr,apv,lv,hv) values ('" & code & "','" & Val(TextBox2.Text) & "','" & Val(TextBox1.Text) & "','" & Val(TextBox4.Text) & "','" & Val(TextBox3.Text) & "','" & Val(TextBox6.Text) & "','" & Val(TextBox5.Text) & "');", cn)
                'cmd.ExecuteNonQuery()
                MsgBox("le code est:" & code)
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
    afin de pouvoir l'insérer dans une autre table mais j'ai une erreur:
    "the data type texte and varchar are incompatible in the equal operator.
    Merci.

  2. #2
    Membre actif Avatar de DeWaRs
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 291
    Points : 269
    Points
    269
    Par défaut
    Hello,

    Utilise des requêtes paramètrées.

    Cordialement.

    DeWaRs

    Edit : je pense d'ailleurs qu'il faut que tu utilises la propriété selextedIndex plutot que SelectedItem, mais sans plus d'info je ne peux pas etre plus précis.

  3. #3
    Membre à l'essai
    Homme Profil pro
    génie logiciel
    Inscrit en
    Mars 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : génie logiciel

    Informations forums :
    Inscription : Mars 2012
    Messages : 113
    Points : 21
    Points
    21
    Par défaut
    est ce possible de me proposer un exemple sinon travailler sur le même code??

  4. #4
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Si tu veux récupérer le texte du combobox, il faut utiliser la propriété Text (ComboBox1.Text).

    En outre, s'il faut récupérer seulement, la colonne code_chantier, pourquoi ne pas faire simplement "select code_chantier from chantier where intitule = ...."?

    +1 à DeWaRs pour l'utilisation des requêtes paramétrées.
    N'oubliez pas le tag et

  5. #5
    Membre à l'essai
    Homme Profil pro
    génie logiciel
    Inscrit en
    Mars 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : génie logiciel

    Informations forums :
    Inscription : Mars 2012
    Messages : 113
    Points : 21
    Points
    21
    Par défaut
    pardon callo mais je te suis pas bien en fait ma requête au départ c'était ça mais j'obtiens la même erreur

  6. #6
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    En prenant en compte l'utilisation des requêtes paramétrées, tu devrais avoir un truc du genre:
    Code vb.net : 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
     
    Dim sqlGetCode As String
     
    Try
        cn.Open() 
     
        'Requete select 
        sqlGetCode = "SELECT code_chantier FROM chantier WHERE intitule = @ParamIntitule"
        'Création de la commande SQL
         cmd2  = New SqlCommand(sqlGetCode, cn) 
        'Création et déclaration des paramètres 
        cmd2.Add(New SqlParameter("@ParamIntitule", SqlDbType.VarChar, 20)) 
        'Attribution des valeurs aux paramètres
        cmd2.Parameters("@ParamIntitule").Value = ComboBox1.Text 
     
        String code = (String)cmd2.ExecuteScalar() 
     
        MessageBox.Show("le code est: " & code)
     
    Catch ex As Exception 
        MessageBox.Show(ex.ToString) 
    End Try

    J'ai pas testé, mais ça devrait fonctionner.
    N'oubliez pas le tag et

  7. #7
    Membre à l'essai
    Homme Profil pro
    génie logiciel
    Inscrit en
    Mars 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : génie logiciel

    Informations forums :
    Inscription : Mars 2012
    Messages : 113
    Points : 21
    Points
    21
    Par défaut
    j'ai une erreur au niveau de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd2.Add(New SqlParameter("@ParamIntitule", SqlDbType.VarChar, 20))
    il reconnait pas le .add

  8. #8
    Membre à l'essai
    Homme Profil pro
    génie logiciel
    Inscrit en
    Mars 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : génie logiciel

    Informations forums :
    Inscription : Mars 2012
    Messages : 113
    Points : 21
    Points
    21
    Par défaut
    même avec une requête parametrée ça ne marche en fait le code chantier et auto increment dans ma table.

  9. #9
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par mehdi.cheddani Voir le message
    il reconnait pas le .add
    Que veux-tu dire par là? As-tu bien déclarer cmd2 comme ceci:
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim cmd2 As SqlCommand
    ? Si tu peux montrer l'ensemble de ta procédure, ce serait bien et on pourrait mieux t'aider.
    N'oubliez pas le tag et

  10. #10
    Membre à l'essai
    Homme Profil pro
    génie logiciel
    Inscrit en
    Mars 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : génie logiciel

    Informations forums :
    Inscription : Mars 2012
    Messages : 113
    Points : 21
    Points
    21
    Par défaut
    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
     Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim req As String
            l = Val(TextBox1.Text)
            c = Math.Round(((l - 147) / 2) + 0.5)
            lv = Math.Round((c - 13))
            h = Val(TextBox2.Text)
            dx = Math.Round((h - 72))
            hv = Math.Round((h - 174))
            Dim cmd, cmd2 As New SqlCommand
            Dim code As Integer
            Dim list As New ListViewItem
            list.Text = l
            list.SubItems.Add(h)
            list.SubItems.Add(c)
            list.SubItems.Add(dx)
            list.SubItems.Add(lv)
            list.SubItems.Add(hv)
            ListView1.Items.Add(list)
            cn = New SqlConnection("Data Source=ADMIN\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=MET")
            Try
                cn.Open()
                req = "SELECT code_chantier FROM chantier WHERE intitule = @ParamIntitule ;"
                cmd2 = New SqlCommand(req, cn)
                cmd2.Parameters.Add(New SqlParameter("@ParamIntitule", SqlDbType.VarChar, 20))
                cmd2.Parameters("@ParamIntitule").Value = ComboBox1.SelectedItem
                code = Convert.ToInt32(cmd2.ExecuteScalar)
                'cmd = New SqlCommand("insert into drs_cls(code_chantier,larg,haut,pr,apv,lv,hv) values ('" & code & "','" & Val(TextBox2.Text) & "','" & Val(TextBox1.Text) & "','" & Val(TextBox4.Text) & "','" & Val(TextBox3.Text) & "','" & Val(TextBox6.Text) & "','" & Val(TextBox5.Text) & "');", cn)
                'cmd.ExecuteNonQuery()
                MsgBox("le code est:" & code)
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
        End Sub

  11. #11
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Quelle est précisément la ligne qui bloque? Quelle est la description de l'erreur générée?
    N'oubliez pas le tag et

  12. #12
    Membre à l'essai
    Homme Profil pro
    génie logiciel
    Inscrit en
    Mars 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : génie logiciel

    Informations forums :
    Inscription : Mars 2012
    Messages : 113
    Points : 21
    Points
    21
    Par défaut
    la ligne 26

  13. #13
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    pourquoi alors dis-tu qu'il reconnait pas le .add? Quel est le message d'erreur? Si tu ne fournis pas tous les détails, il sera difficile de t'aider.
    N'oubliez pas le tag et

  14. #14
    Membre à l'essai
    Homme Profil pro
    génie logiciel
    Inscrit en
    Mars 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : génie logiciel

    Informations forums :
    Inscription : Mars 2012
    Messages : 113
    Points : 21
    Points
    21
    Par défaut
    les message est :the data type text and varchar are incompatible in the equal to operator

  15. #15
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Apparement, tu as définis le champ intitule de ta table chantier comme Texte. je crois que tu ne pas pas utiliser un champ de type Texte dans une clause where du genre "tonChampDeTypeText = UneValeur". Donc change le type de intitule en varchar ou varchar(max).
    N'oubliez pas le tag et

  16. #16
    Membre à l'essai
    Homme Profil pro
    génie logiciel
    Inscrit en
    Mars 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : génie logiciel

    Informations forums :
    Inscription : Mars 2012
    Messages : 113
    Points : 21
    Points
    21
    Par défaut Merci de penser à marquer votre discussion en Résolue.
    Merci beaucoup callo en fait c'était bien ça le problème merci encore une fois!

  17. #17
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    C'est un plaisir. N'oublie pas de passer le topic à
    N'oubliez pas le tag et

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

Discussions similaires

  1. Récupérer la valeur d'un champs auto incrémenté
    Par jim53 dans le forum Débuter
    Réponses: 2
    Dernier message: 06/12/2013, 21h49
  2. [PHP 5.3] Récupérer la valeur d'un champ auto-incrementé
    Par herve911 dans le forum Langage
    Réponses: 24
    Dernier message: 18/09/2011, 20h59
  3. Récupérer la valeur d'un champ auto increment dans Firebird
    Par mls dans le forum Bases de données
    Réponses: 11
    Dernier message: 30/09/2009, 19h35
  4. Réponses: 1
    Dernier message: 23/07/2007, 20h57
  5. Connaître la valeur d'un champ auto incrémenté
    Par soltani1 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/05/2006, 14h55

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