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 :

Requête d'insertion dans une base de données


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 130
    Points : 70
    Points
    70
    Par défaut Requête d'insertion dans une base de données
    Bonjour,

    J'ai créé une fonction pour insérer une ligne dans une de mes tables, mais bien qu'il n'y ai aucune erreur retournée, ma ligne n'est pas ajouté.
    Je pense qu'un peu de code sera plus explicite que mes explications :
    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
     
            Dim err As Integer
            Dim req As String
            Dim myCommand As SqlCommand
     
            req = "INSERT INTO CONTACT (NAME_CONTACT,LAST_NAME_CONTACT,JOB_TITLE_CONTACT,EMAIL_CONTACT,PHONE_NUMBER_CONTACT,FAX_CONTACT)"
            req = req & " VALUES(Cast(@name as text),cast(@LastName as text),cast(@JobTitle as text),cast(@Email as text),cast(@Phone as text),cast(@Fax as text))"
     
    'Ma fonction GetoConn est fonctionnelle, mes objets myCommand en lecture ne posaient pas de problème.
     
            myCommand = New SqlCommand(req, GetoConn())
            With myCommand.Parameters
                .Add(New SqlParameter("@name", SqlDbType.Char, 50))
                .Add(New SqlParameter("@LastName", SqlDbType.Char, 50))
                .Add(New SqlParameter("@JobTitle", SqlDbType.Char, 50))
                .Add(New SqlParameter("@Email", SqlDbType.Char, 50))
                .Add(New SqlParameter("@Phone", SqlDbType.Char, 50))
                .Add(New SqlParameter("@Fax", SqlDbType.Char, 50))
     
            End With
            With myCommand
                .Parameters("@name").Value = CChar(name)
                .Parameters("@LastName").Value = CChar(LastName)
                .Parameters("@JobTitle").Value = CChar(JobTitle)
                .Parameters("@Email").Value = CChar(Email)
                .Parameters("@Phone").Value = CChar(Phone)
                .Parameters("@Fax").Value = CChar(Fax)
     
            Try
     
                'Execution de la requête
                Req_SQL.Connection.Open()
                Req_SQL.ExecuteNonQuery()
                Req_SQL.Connection.Close()
     
            Catch ex As Exception
                Return Err.Number
            End Try
    Si quelqu'un voit d'où pourrait venir mes erreurs...
    Merci.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 130
    Points : 70
    Points
    70
    Par défaut
    J'ai essayé une requète simple sans caster les paramètres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    req = "INSERT INTO CONTACT (NAME_CONTACT,LAST_NAME_CONTACT,JOB_TITLE_CONTACT,EMAIL_CONTACT,PHONE_NUMBER_CONTACT,FAX_CONTACT)"
            req = req & " VALUES ('" & name & "','" & LastName & "','" & JobTitle & "', '" & Email & "', '" & Phone & "','" & Fax & "')"
            myCommand = New SqlCommand(req, GetoConn())
     Try
                Req_SQL.Connection.Open()
                Req_SQL.ExecuteNonQuery()
                Req_SQL.Connection.Close()
     Catch ex As Exception
                Return Err.Number
     End Try
    De la même manière, j'ai enlevé à ma première requêtes les Cast ...
    Toujours aucune ligne ajoutée.
    Je précise que j'ai récupéré la requête créée et essayer de l'exécuter, mon contact a bien été ajouté sans problème...
    Merci à ceux qui se pencheront sur mon problème...

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Dans ta première version, je ne vois pas pourquoi tu mets des Cast. Normalement la gestion de paramètres des commandes se débrouille très bien pour faire le transtypage.

    A part cela, c'est quoi ton ReqSql ? je ne comprends pas l'organisation de ton code.

    L'ExecuteNonQuery s'appelle sur l'objet commande lui même.

    - instanciation objet commande
    - affectation connection à l'objet commande
    - affectation text de requete à l'objet commande
    - appelle executeNonQuery sur l'objet commande.

    T'as une référence à un objet surnuméraire, IMHO.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 130
    Points : 70
    Points
    70
    Par défaut
    T'as une référence à un objet surnuméraire, IMHO.
    Je ne comprends pas cette phrase...

    Ensuite, désolé, j'appelle "myCommand" dans une fonction extérieure et j'avais changé le nom, désolé...

    J'ai copié le code de mes 2 fonctions à la suite pour que se soit plus compréhensible... Mais j'avais pas vu que j'avais changé les noms...

    Pour le "Cast" j'avais fait ça en pensant qu'il y aurait peut-être un problème entre String et text... Mais c'était juste pour essayer...

    Ma dernière requète ressemblerais plutot à ça alor...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    req = "INSERT INTO CONTACT (NAME_CONTACT,LAST_NAME_CONTACT,JOB_TITLE_CONTACT,EMAIL_CONTACT,PHONE_NUMBER_CONTACT,FAX_CONTACT)"
            req = req & " VALUES ('" & name & "','" & LastName & "','" & JobTitle & "', '" & Email & "', '" & Phone & "','" & Fax & "')"
            myCommand = New SqlCommand(req, GetoConn())
     Try
                myCommand .Connection.Open()
                myCommand .ExecuteNonQuery()
                myCommand .Connection.Close()
     Catch ex As Exception
                Return Err.Number
     End Try

  5. #5
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    Bonjour Kalion,

    J'ai eu un problème à propos de requêtes INSERT INTO et le composant OleDB.
    Je ne sais pas si le site ci-dessous te concerne, mais j'ai réussi à comprendre que ce n'était pas ma requête qui avait un problème, mais le fonctionnement de OleDB.

    http://support.microsoft.com/kb/316323

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 130
    Points : 70
    Points
    70
    Par défaut
    Merci pour le lien, mais ça ne correspond pas à mon problème, mon code ne relève aucune exception dans un try catch et j'essai d'insérer des éléments avec du texte à l'intérieur...
    De plus j'ai permis l'ajout de NULL...
    Et j'arrive à afficher mes données déjà insérées (manuellement) dont certaines sont nulles...
    L'affichage par les mêmes paramètres de connexion...

Discussions similaires

  1. Parcours d'un fichier et insertion dans une base de données !
    Par condor_01 dans le forum Général Java
    Réponses: 2
    Dernier message: 24/04/2008, 09h24
  2. Problème d'insertion dans une base de donnèes
    Par atout dans le forum Administration
    Réponses: 14
    Dernier message: 27/12/2006, 07h07
  3. Requête d'insertion dans une base ACCESS
    Par kurul1 dans le forum C++Builder
    Réponses: 5
    Dernier message: 02/11/2006, 17h41
  4. Insertion dans une base de donnée MYSQL !
    Par condor_01 dans le forum JDBC
    Réponses: 7
    Dernier message: 01/08/2006, 12h10
  5. problème d'insertion dans une base de données
    Par belmansour tidjani dans le forum JDBC
    Réponses: 7
    Dernier message: 18/01/2006, 22h13

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