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 :

liaison base de donnée avec objets (combobox, textbox, etc.) [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations forums :
    Inscription : Mai 2011
    Messages : 38
    Par défaut liaison base de donnée avec objets (combobox, textbox, etc.)
    Bonjour a tou(te)s.

    Je réalise actuellement mon premier "vrai" projet en VB.net a l'aide de VS 2010 Basic (la version gratuite ^^).

    Mais je reste désespérément bloqué a une étape toute bête: l'enregistrement de mes données.

    J'ai créer une BDD à l'aide de SQL fourni avec VS 2010. et je "travaille" avec de WindowsForm.

    j'ai un créer un bouton "BT_enregister".
    a l'appui de celui-ci par l'utilisateur, je souhaite que mes champs (textbox, combobox, images, bref, plein d'objets!!!) soit enregistrer dans ma base de données.

    donc, ma demande si possible: est-ce que quelqu'un pourrait me donner un exemple de code détaillé pour ça?

    l'idéal étant même (j'en, demande BEAUCOUP, j'en suis conscient) un projet tout bête avec une textbox et 1 bouton enregistrer + 1 BDD, afin que je comprenne les mécanismes de BDD SQL (j'ai bien compris qu'il y avait 4 fonctions de base à SQL mais je ne vois pas comment les utiliser dans un projet).

    J'ai bien sur lu le cours de M Lasserre (tres bien fait au passage!!!), mais je n'ai pas tout saisi propos des enregistrements!!!

    J'ai évidemment écumé les forums et google, mais je n'ai rien trouvé de probant (peut-être n'ai-je pas chercher avec les bon mots!)

    en tous cas, merci d'avance a tous!!!

  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
    à mettre en haut du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imports system.data.sqlclient
    à mettre dans la sub qui enregistre :
    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
    try
     
    using conn as new sqlconnection
      conn.connectstring = "mettre la chaine de connexion ici"
      dim cmd as new sqlcommand 
      cmd.connection = conn
      cmd.commandtext = "insert into matable (lechamp) values (@lechampvaleur)"
      cmd.parameters.add("@lechampvaleur",me.textbox1.text)
     
      conn.open
      cmd.executenonquery
    end using
     
    catch ex as exception
      msgbox ("erreur : " & ex.message)
    end try

    http://www.developpez.net/forums/d11...e-variable-vb/
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations forums :
    Inscription : Mai 2011
    Messages : 38
    Par défaut
    Je me permet de commenter ce que tu m'a donné, afin d'être sur de comprendre! car il y a 2/3 trucs que j'ai pas pigé!!! mais ça va venir, j'en suis sur!!!



    Citation Envoyé par Pol63 Voir le message

    à mettre en haut du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imports system.data.sqlclient
    à mettre dans la sub qui enregistre :
    là, il faut que je déclare l'utilisation de la bibliothèque en l'important (ça, je "connais"!!!)

    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
    try
    using conn as new sqlconnection
      conn.connectstring = "mettre la chaine de connexion ici"
      dim cmd as new sqlcommand 
      cmd.connection = conn
      cmd.commandtext = "insert into matable (lechamp) values (@lechampvaleur)"
      cmd.parameters.add("@lechampvaleur",me.textbox1.text)
     
      conn.open
      cmd.executenonquery
    end using
     
    catch ex as exception
      msgbox ("erreur : " & ex.message)
    end try
    Déjà, une première question: pourquoi l'utilisation de la commande try?
    pour gérer les erreur, j'imagine, non?

    ensuite, la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using conn as new sqlconnection
    le "using" remplace le "function"?

    pour le reste, je comprends a peu près les surcharges (on dit comme ça, non?)
    ah oui aussi. pourquoi mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    conn.open
      cmd.executenonquery
    a la fin? je l'aurai mis au début.
    j'explique pourquoi je dis ça: tu ouvre la connexion avec cette ligne, non?
    donc c'est la ligne que j'aurais mis en premier.
    et à quoi sert ?


    sinon, le reste est assez clair!! merci.
    j'essais ça dans l'après midi ou soirée, suivant le temps que j'ai!!!!!

    merci beaucoup en tous cas pour ton aide!!!



    [EDIT]
    ARGGG j'ai des"erreurs" a propos des lignes
    VB me dit que connectstring n'est pas un membre de System.data.sqlclient.sqlconnection
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     cmd.Parameters.Add("@lechampvaleur", Me.TXT_Nom.Text)
    il me dit que l'argument add est obsolète et qu'il vaut mieux utiliser "AddWithValue". Qu'en penses-tu?

  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
    Citation Envoyé par bougyfab Voir le message
    là, il faut que je déclare l'utilisation de la bibliothèque en l'important (ça, je "connais"!!!)
    pas vraiment
    pour utiliser une bibliothèque, il faut l'ajouter en référence (clic droit sur le projet)
    certaines sont déjà mises par défaut dont system.data.dll
    imports sert juste à ne pas préfixer par les namespace
    au lieu de taler dim c as new system.data.sqlclient.sqlcommand on tape juste dim c as new sqlcommand, car avec l'imports il sait où chercher



    Citation Envoyé par bougyfab Voir le message
    Déjà, une première question: pourquoi l'utilisation de la commande try?
    pour gérer les erreur, j'imagine, non?
    oui le try catch permet en cas d'erreur de ne pas mettre un violent message d'erreur à l'utilisateur voire fermer l'appli
    en cas d'erreur dans le try, ca passe dans le catch, il est alors possible de gérer l'erreur selon son type ou autre et de voir ce qu'on fait alors (message si erreur temporaire, enregistrer dans un log si c'est un bug)
    le try catch est important dans un programme, il faut en mettre un peu partout, documente toi sur try/catch/finally et éventuellement sur throw


    Citation Envoyé par bougyfab Voir le message
    ensuite, la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using conn as new sqlconnection
    le "using" remplace le "function"?
    pas du tout
    sub est une méthode, function est une méthode qui retourne un résultat, je n'en ai pas mis dans mon exemple parce que ca me semblait évident, et à priori pour toi ca sera dans une sub lié à au clic sur un bouton (sub machin handles button.click)
    le using/end using sert pour les classes implémentant IDisposable (le cas pour sqlconnection)
    ca permet d'appeler .Dispose (libération de la mémoire non managée) dans tous les cas (sortie normale, ou erreur qui va dans le catch)
    sans using ca donnerait
    dim c as new connection
    (...)
    erreur
    (...)
    c.dispose
    catch
    la ligne qui passe en erreur fait qu'on ne va pas jusqu'à c.dispose et donc la mémoire ne sera pas libérée tout de suite (elle le sera quand même mais on ne sait pas quand)
    et pour une connection, .dispose appelle .close donc c'est bien pratique
    le using équivaut à un try/finally

    Citation Envoyé par bougyfab Voir le message
    pour le reste, je comprends a peu près les surcharges (on dit comme ça, non?)
    je ne vois pas de surcharge dans ce que j'ai écrit ...
    une surcharge est une définition secondaire (ou plus) d'un membre mais avec des paramètres différents en nombre ou type
    sub machin(a as string)
    sub machin(a as string, b as integer)


    Citation Envoyé par bougyfab Voir le message
    ah oui aussi. pourquoi mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    conn.open
      cmd.executenonquery
    a la fin? je l'aurai mis au début.
    j'explique pourquoi je dis ça: tu ouvre la connexion avec cette ligne, non?
    donc c'est la ligne que j'aurais mis en premier.
    là c'est au choix, en théorie une connexion doit être ouverte le moins de temps possible, dans la pratique on s'en fout parfois, surtout pour 1 picoseconde en inversant l'odre
    d'un autre côté en ouvrant la connexion au début, si ca plante, on ne perdra pas du temps à créer un Command ...

    Citation Envoyé par bougyfab Voir le message
    et à quoi sert ?
    ca c'est expliqué dans le lien que je t'ai mis, merci de le lire ...

    explications non exhaustives, il y a de vastes sujets de discussion qui pourrait nécessiter des pages de détails ^^
    mais msdn est là pour les détails ...


    EDIT aussi : pour le connectstring, regarde simplement ce que l'intellisense te propose ! (en l'occurrence connectionstring)
    EDIT 2 : c'est comme tu le sens ^^ ; obsolete veut dire toujours fonctionnel mais qu'il y a mieux depuis que la fonction de base a été écrite
    donc tu peux utiliser addwithvalue
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations forums :
    Inscription : Mai 2011
    Messages : 38
    Par défaut
    OUILLLEEE

    ta réponse me "pique" les yeux et le cerveau!!!!!

    pour la référence de bibliothèque, je savais, je me suis mal exprimé!!!

    pour la sub dans le bouton enregistrer, j'avais aussi compris!!!
    c'etait plus le "using" qui m'interrogeais!

    pour les surcharge, je pensais qu'il s'agissait des "arguments" que l'on passait aux différentes commande avec le . (genre ).

    pour le lien, je ne l'avais pas vu

    pour le reste, je vais potasser le MSDN et les forums, mais au moins, j'avance un peu grace a toi.

    Je ne passe pas encore le statut en [résolu] car je pense que j'aurais d'autres questions!!!!

    Mais MERCI de prendre du temps pour tout m'expliquer, car comme je l'ai dit, je débute (et comme tu vois, je suis un GRAND débutant!) et lorsque l'on est bloqué, c'est limite a être dégoûter du dev'!!!(ça fait ~15 jours que je cherche une solution simple et a ma porté en fait!!)


    Sinon, l'intellisense, c'est "l'autocompletion" + l'aide des commandes de VS 2010, non? je ne savais pas que c'était son nom!!!

    Mais une chose est sure: c'est juste génial!!!!!

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Par défaut
    Citation Envoyé par bougyfab Voir le message
    Sinon, l'intellisense, c'est "l'autocompletion" + l'aide des commandes de VS 2010, non? je ne savais pas que c'était son nom!!!

    Mais une chose est sure: c'est juste génial!!!!!

    Oui ça te permet de voir ce qui t'es proposé par le framework après un "monTruc." quand tu es un peu perdu, mais attention tout n'est pas forcément indiqué seulement ce qui est le plus courant en général. Tu peux l'appeler avec Ctrl + Space et faire Tab pour écrire la ligne sur laquelle tu es (ou carrément Enter pour écrire et passer à la ligne suivante)

  7. #7
    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
    Citation Envoyé par bougyfab Voir le message
    ta réponse me "pique" les yeux et le cerveau!!!!!
    c'est pour dégouter les non motivés
    non je déconne c'est pour ne serait que mentionner certaines choses importantes qui devront être vues pendant l'apprentissage


    Citation Envoyé par bougyfab Voir le message
    pour les surcharge, je pensais qu'il s'agissait des "arguments" que l'on passait aux différentes commande avec le . (genre ).
    dim b as untruc => b est une variable, un truc est son type
    dim b as new untruc => new sert à instancier, b est une instance de untruc
    b.machin = "test" => machin est une propriété
    b.refresh => refresh est une méthode
    membre de classe : champ, propriété, méthode ou function (un champ est une variable)
    portée des membres : private, protected, friend, protected friend, public ; shared

    Citation Envoyé par bougyfab Voir le message
    Je ne passe pas encore le statut en [résolu] car je pense que j'aurais d'autres questions!!!!
    j'imagine bien

    Citation Envoyé par bougyfab Voir le message
    et lorsque l'on est bloqué, c'est limite a être dégoûter du dev'!!!(ça fait ~15 jours que je cherche une solution simple et a ma porté en fait!!)
    http://plasserre.developpez.com/cours/vb-net/
    moi j'ai commencé par lire tout ca pendant 40 heures
    ca permet d'apprendre les termes et notions de base, et même si on ne retient pas tout (certaines choses sont survolables) on sait ce qui existe et on sait donc quoi chercher
    .net est très vaste, et bien souvent on écrit 10 lignes de code alors qu'une seule le fait déjà dans la framework ...


    Citation Envoyé par bougyfab Voir le message
    Sinon, l'intellisense, c'est "l'autocompletion" + l'aide des commandes de VS 2010, non? je ne savais pas que c'était son nom!!!
    l'intellisense est en effet le menu qui gère l'autocomplétion avec une petite bulle d'aide pour chaque membre
    quand on ne connait pas une classe, il est pratique d'écire dim a as laclasse et de faire a. pour lire tout ce qu'il y a
    on peut voir les surcharges avec haut et bas
    on peut voir les paramètres, leur type et leur utilité en ouvrant ( et en mettant des ',' s'il y a plusieurs paramètres
    sur les membres et les types tu peux faire F1 pour avoir des infos et parfois des exemples


    Citation Envoyé par bougyfab Voir le message
    Mais une chose est sure: c'est juste génial!!!!!
    en effet .net est très agréable à utiliser une fois qu'on connait un peu
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Base de donnée avec combobox
    Par tony-28 dans le forum VB.NET
    Réponses: 3
    Dernier message: 05/11/2012, 09h28
  2. tutos base de donnée orientée objet avec Sql server
    Par marwa21 dans le forum MS SQL Server
    Réponses: 17
    Dernier message: 15/03/2011, 14h59
  3. Base de données relationnelle-objet avec MySQL
    Par tiger8 dans le forum Administration
    Réponses: 2
    Dernier message: 25/10/2010, 15h26
  4. connexion à une base de données avec l'objet dataview
    Par mademoizel dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 12/03/2007, 13h31
  5. [SGBDOO] Base de données orientée objet
    Par Jaona dans le forum Décisions SGBD
    Réponses: 19
    Dernier message: 14/04/2003, 11h07

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