INSERTION D'IMAGE DANS BASE DE DONNEES SQL VB.NET 2008 EXPRESS

Xanadu001 Messages postés 3 Date d'inscription mercredi 19 août 2009 Statut Membre Dernière intervention 20 août 2009 - 19 août 2009 à 14:48
Xanadu001 Messages postés 3 Date d'inscription mercredi 19 août 2009 Statut Membre Dernière intervention 20 août 2009 - 20 août 2009 à 20:09
Bonjour à tous et au secours!

Je ne suis pas tout à fait débutant mais je ne suis malheureusement pas un pro en programmation.

Mon IDE: VISUAL BASIC EXPRESS 2008.

Je m'auto-débrouille avec la Visite Guidée Visual Basic Express 2008, je suis arrivé au stade Base de Donnée.

Beaucoup on déjà posé cette question, mais j'ai beau chercher, je ne trouve de réponse nulle part...Après avoir en vain essayé de me débrouiller seul, déséspéré, j'appelle à l'aide. S'il vous plaît: quelqu'un peut-il me dire comment INSERER UNE IMAGE DANS UNE BASE DE DONNEE sql serveur (Compact 3;5 ou express) avec Visual Basic?
Je parviens à créer une Base de données, créer une table, nommer des colonnes...jusque là, ça va. J'arrive aussi à y ajouter des enregistrements, mais dans la colonne de TYPE IMAGE, aucun moyen d'insérer d'image...
On dit qu'il faut convertir une image en Binaire, mais comment faire? Je n'arrive pas à mettre la base de données à jour sans passer par l'insertion par les contrôles VB, c'est à dire que n'arrive pas à mettre à jour (ajouter des enregistrements donc par colonnes) en passant par le code...

Je m'arrête donc au stade "Afficher les données de la table", qui permet d'y enregistrer les éléments. Puis Stop.
S'il vous plaît aidez-moi.

2 réponses

Xanadu001 Messages postés 3 Date d'inscription mercredi 19 août 2009 Statut Membre Dernière intervention 20 août 2009
20 août 2009 à 19:41
Parfait!
Bon, je crois avoir trouvé la solution, ça semble fonctionner, en liant les éléments de la base de données aux contrôles habituels Windows Forms(TextBox, PictureBox...) et en faisant la mise à jour des données par ces contrôles mêmes. Ca évite de se tracasser avec les conversions binaires et compagnie...

Beaucoup n'ont peut-être pas ce problème, mais vu que cette question a été posée pas mal de fois, je vais donner un mot d'explication au cas où ça peut aider quelqu'un:

Sous Visual Basic 2008 Express:
1. Créer Nouvelle base de données:
Nouveau Projet, choisir (par exemple) Application Windows Forms. Ensuite, dans Affichage ,explorateur de base de données, click droit, ajouter une nouvelle connexion. Dans source de données, vérifier que c'est bien "Fichier de base de données Microsoft SQL Server (SqlClient)", si ce n'est pas le cas, appuyer sur modifier et sélectionner la bonne source.
Donner un nom à la nouvelle base de données. Un message apparait "Le fichier [chemin d'accès jusqu'à votre nom que vous avez donné à votre nouvelle base] n'existe pas. Voulez vous le créer?" Mettre oui.

2. Ajouter une ou plusieurs tables
Dans l'explorateur de solution, le nom de votre base de données apparaît suivi de l'extention .mdf.
Développer le noeud en appuyant donc sur le +. Faire click droit sur Tables et Ajouter nouvelle table. En dessous de "Nom de la colonne", ajouter deux noms pour créer deux colonnes, huit pour en créer huit...
Une colone au moins doit avoir la clé primaire (empêcher deux fois le même élément dans la colonne). Cliquer droit à coté du nom de la colonne choisie et Définir la clé primaire.
S'il n'est pas possible de mettre une clé primaire sur une colonne (vous prévoyez que deux éléments pourront porter le même nom [ex. 2 fois le prénom d'une personne], choisissez 2 colonnes (ou plus) à contenir une clé primaire.
Pour la colonne devant contenir des images, choisir comme type de données: image (c'est ce que j'ai fait). Peut-être pour les valeurs nchar() mettre plus que 10, mais bon...
Fichier, enregistrer Table ==> donner un nom à votre Table et enregistrer.

3. Ajouter des données à la Table
Dans l'Explorateur de base de données, en repérer votre Base de données [NomDeVotreBaseDeDonnées.mdf], développer le noeud de votre Base de données, puis développer Tables, cliquer droit sur le nom de votte table et "Afficher les données de la table".
Remplir vos colonnes, sauf la colonne image, ça, ça sera après, je ne vois d'ailleurs pas d'autre solutions, mais ça sera facile.
Dans la ou les colonnes avec la clé primaire, il faut obligatoirement inscrire quelque chose.
Fichier, enregistrer tout.
4. Ajouter une source de données au projet
Maintenant, Affichage, Concepteur de Solutions. Cliquer droit, Concepteur de vue (le formulaire donc). Dans Sources de données, appuyer sur le premier petit bouton à gauche "Ajouter une source de données". Choisir Base de données, suivant. Le nom de votre Base de données doit apparaître. Suivant. Cocher Tables, et le nom de votre table doit aussi , normalement être coché. Terminer.

5. Préparer la liaison des données à des contrôles Windows Forms
Dans les menus, Projet, Ajouter un nouvel élément, Choisir ClasseLINQtoSQL. Mieux vaut (peut-être) donner le nom de votre base de données, puis Ajouter. Une grande fenêtre s'ouvre alors avec NomdeVotreBaseDeDonnées.dbml.

Dans l'Explorateur de base de données, développer le noeud de votre base de données.mdf, développer le noeud Tables. Cliquer le votre Table en dessous de Tables, faire glisser votre table jusque dans le Concepteur O/R (la grande fenêtre avec comme nom votre BaseDeDonnées.dbml) et dans propriété, votre base porte le nom de VotreBaseDeDonnéeDataContext. Si un message apparaît, il faut mettre oui. Dans les menus, Générer, Générer LeNomQueVousAviezDonnéAL'ApplicationWindowsForms.

6. Dernière Etape

Maintenant, retour sur le formulaire (concepteur de vues donc). Dans sources de données, en dessous de votre Base de données, votre table apparaît, et à côté une flèche vers le bas.
En dessous, apparaissent le noms de vos colonnes. A côté de votre colonne image, appuyer sur la flêche et mettre Picturebox. Faire glisser chacune des colonnes, une par une (dans notre cas, pas la table) vers le formulaire.
Une barre de menus apparaît, ainsi que divers éléments (TableAdapters, BindingSource,...) 5 normalement.
Faire F5 pour lancer le programme. Normalement, les éléments de données que vous avez enregistrés pour chaque colonne sauf dans la colonne image, doivent apparaître. En utilisant
les flèches dans le menus au-dessus, on peut faire défiler les enregistrements... et mettre à jour (modification, ajout...) Vous pourrez facilement faire des modifications dans les Textbox... Pour l'image, il suffit par exemple de créer un événement par ex. button_click qui affichera dans "ImagePictureBox.Image" (le nom de la colonne image "convertie"en contrôle Windows Forms) l'image voulue... Puis vous sauvez en appuyant sur la disquette dans le menu.
Il est probable, que si vous utilisiez une Table avec une colonne image et que vous vouliez enregistrer une nouvelle entrée, il faille obligatoirement ajouter une image à cette nouvelle entrée, car si la colonne image est vide au niveau de ce nouvel enregistrement, "ça pourrait faire des histoires", car le "NULL" pourrait ne pas être géré...

J'espère que ça pourra vous aider.
0
Xanadu001 Messages postés 3 Date d'inscription mercredi 19 août 2009 Statut Membre Dernière intervention 20 août 2009
20 août 2009 à 20:09
Je pense m'être très légèrement trompé quelque part, ou bien peut-être ai-je oublié un très légé détail, car avant ça marchait...Je trouverai prochainement la solution de toute façon.
0
Rejoignez-nous