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

Windows Forms Discussion :

[VB .NET]Requete Insert vers une BD access


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Points : 7
    Points
    7
    Par défaut [VB .NET]Requete Insert vers une BD access
    Voila, partir d'une appli vb.net je voudrais envoyer une requete SQL pour pouvoir inserer une nouvelle ligne dans une de mes tables mais le soucis c'est que mon programme plante et je comprends pas pourquoi donc si quelqu'un a une idée ou sait pourquoi ca plante faite le moi savoir

    Merci d'avance

    Voila mon 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
    Dim SQL As String = "INSERT INTO Projet(IDProjet,NomProjet,Logiciel,VersionLogiciel,ReferenceSiemensFR,"
     
    SQL += "ReferenceCIS,DateDebut,DateFin,Catégorie,ClasseOffre,MontantTotal,NomClient,CoordonneesClient,"
     
    SQL += "TelephoneClient,ChefdeProjet,DateRemiseoffre,NomVendeur,Pays,CoutEngineering,CoutHardWare,"
     
    SQL += "NomContactSiemens,CoordonneesContactSiemens,TelephoneContactSiemens)"
     
    SQL += "VALUES (" & Me.IDProjet & "," & Me.NomProjet & "," & Me.Logiciel & "," & Me.VersionLogiciel & ","
     
    SQL += "" & Me.ReferenceSiemensFR & "," & Me.ReferenceCIS & "," & Me.DateDebut & "," & Me.DateFin & ","
     
    SQL += "" & Me.Categorie & "," & Me.ClasseOffre & "," & Me.MontantTotal & "," & Me.NomClient & ","
     
    SQL += "" & Me.CoordonneesClient & "," & Me.TelephoneClient & "," & Me.ChefdeProjet & ","
     
    SQL += "" & DateRemiseOffre & "," & Me.Vendeur & "," & Me.Pays & "," & Me.CoutEngineering & ","
     
    SQL += "" & Me.CoutHardware & "," & Me.NomContactSiemens & "," & Me.CoordonnéesContactSiemens & ","
     
    SQL += "" & Me.TelephoneContactSiemens & ")"
     
    Dim var As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Documents and Settings\Administrateur\Bureau\STAGE\Prog\Fenetre\bd1.mdb"
     
    Dim cx As New OleDbConnection(var)
     
    Dim cmd As New OleDbCommand(SQL, cx)
     
    cmd.Connection.Open()
     
    cmd.ExecuteNonQuery()  // C'est ici que le programme plante
     
    cmd.Connection.Close()

  2. #2
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Bonsoir

    Trois remarques:

    1) Il est preferable d'utiliser OleDbCommand pour gerer ses requetes (Ca genere la requete avec les bons separateurs entre autres)
    Voir http://dotnet.developpez.com/cours/ section .NET et les bases de données

    2) Dans la requete il faut mettre les separateurs adequats pour chaque type de valeur inseree

    3) la concatenation avec += offre des performances deplorables, mieux vaut prendre de bonnes habitudes et utiliser un StringBuilder (ou encore parametrer visual studio pour qu'il fasse automatiquement les retours a la ligne)

    Ah, j'oubliais: il faut toujours donner l'intitule de l'erreur car il y a moult raisons possibles!

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Points : 2 203
    Points
    2 203
    Par défaut
    Basiquement,

    fqis un debug.print de ta chaine, je suis a peu près certain que ce sont tes dates qui passent pas.

    Le plus simple moyen de tester ton code SQL est de récupérer la chaine et de la passer dans Access.

    Qd à utiliser stringbuilder ou importe, ca changera rien.

    Fais un SQL propre, et si tu veux du code vraiment propre, tu les stockes dans un fichier.

    Utilises un block try catch avant de lancer ton execution, sinon tu ne sais jamais pourquoi ca plante (catch msgbox ex.message), mets des points d'arrêt....

  4. #4
    Débutant Avatar de amazircool
    Inscrit en
    Décembre 2005
    Messages
    497
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 497
    Points : 152
    Points
    152
    Par défaut consielles d insertion
    petite consielle frére:
    si vs insert dans tous les attribues de ta relation alors evité de monsioner les attribuer, fait une insertion dircte " insert into ptojet values ('" & valeur & "',...)

    :=)

Discussions similaires

  1. Requete INSERT INTO vers une base ACCESS
    Par Milyshyn76 dans le forum C#
    Réponses: 0
    Dernier message: 04/06/2009, 12h16
  2. requête insert vers une bd access
    Par rochdi123 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/05/2009, 21h15
  3. Réponses: 2
    Dernier message: 19/10/2007, 20h29
  4. Requete Insert vers table access distante
    Par Sam 069 dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/09/2007, 12h08
  5. [VB.NET]Requete INSERT dans base de données access
    Par mael94420 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/10/2006, 13h57

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