Les Allergies
Alimentaires
Posez votre question Signaler

Programmation VB sur BDD

guillaume.robier 22Messages postés 25 novembre 2010Date d'inscription 27 février 2012Dernière intervention - Dernière réponse le 27 févr. 2012 à 10:13
Bonjour,
J'ai 15 ans, passionner d'informatique apres avoir créer un serveur de BDD je cherche a créer un programme en VB qui pourais interagir sur la BDD a savoir créer des ligne, les modifier la base de donner est composer de 3 table une table appeler login qui rassemble les utilisateur du programme, une appeler contact qui elle est composer de nom prénom adresse ... des personnes et une autre appeler computer celle si rassemble les ordinateur des contact donc avec marque reference OS procc HDD1 HDD 2 ...
Lire la suite 

Programmation VB sur BDD »

21 réponses
Réponse
+1
moins plus
Bonjour Guillaume,

Tout d'abord je peux te proposer de télécharger Vusial Basic Express qui en licence gratuite. (et si Microsoft sais faire dans le grtatuit).

Excellente plateforme de développement VB. Si tu ne connais pas ce langage, tu vas déjà pouvoir passer un peu de temps à t'amuser pour découvrir.

Ensuite, si tu as besoin de manipuler une BDD, je pense que tu seras intéressé par les bibliothèques de fonctions d'Access et Excel.

Je ne suis pas un as de la programmation VB mais je commence à me défendre un peu et je bosse essentiellement avec ça.

Après, le tout est de savoir ce que tu veux faire exactement. Comment est alimentée ta BDD actuellement ?

@+
Phoe
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour,

Si tu connais, le type de BDD que tu utilises, la proposition de
Visual Basic Express est excellente.

ensuite il te suffit de créer tes objets et tes collections.

Ta BDD

Table -> Colonne

Ta structure en VB

Classe -> Attributs (i.e. propriété ou membre)

Ex.:

Public Class Table1
..Private m_Nom As String = String.Empty
..Private m_Prenom As String = ...
End Class

Public Class ListeTable1
...Inherits System.Collection.Generique.List(Of Table1)
End Class

Pour trouver la chaine de connexion à MySql, recherche
sur googles ( string connexion ), il existe un site qui
te fournira toute la syntaxe pour créer la connection.

Donc, à ce point, tu es connecté sur ta BD avec
la chaine de connexion et tu peux y exécuter des
requêtes SQLs sur les objets que tu as créé.

4 Méthodes SQLs

LireDonnees donc Select ...

EcrireDonnees donc UpDate ... Insert ... Delete

la lecture comme l'écriture doivent être gérer par un seul

contrôle (genre celui qui et exécute l'Instruction SQL), il te
retourne toujours un objet,

le contrôleur normalement reçoit une commande et retourne
un objet et cet objet peut contenir n'importe quoi, tu créé une
fonction de conversion de (dr.read) à (lists of Table1)

ici un DataRow accrocher sur une instruction variable ( dr.Read ).

function ConvertirDrListe(byval dr as DataReader) as Liste (Of Table1)

dim Liste as ListeTable1
dim Entite as Table1

for each dr.read
..Entite = New Table1
..Entite.Nom = dr.(0)
..Entite.Prenom = dr.(1)
..Liste.Add(Entite)
next

return Liste

end function

Pour terminer, la collection d'objets que tu reçoit du contrôleur
tu peux en alimenter un objet ( BindingSource ) et à l'affichage
sur un DGV (DataGridView) c'est bien. :-)

Si tu veux pousser sur le SQLs, regarde du côté d'Oracle si l'anglais
ne t'effraie points, et trouve aussi de la doc sur les méthodes LinQ.

C'est un peu la base des classes d'affaires spécialisées ...

Cdt

Lupin
Ajouter un commentaire
Réponse
+0
moins plus
Oui j'ai deja visual basic de microsoft. je sais que access est super mais pas adequate avec mon type de bdd qui est My SQL donc voila j'aimerais un programme en VB qui ajits sur la BDD.

Merci de vos conseil...
guillaume.robier- 14 févr. 2012 à 09:43
PS j'ecris un peux trop vite ^^
Ajouter un commentaire
Réponse
+0
moins plus
Merci Beaucoup je vais éplucher toute ses information.

Et je vais me mettre au boulo ...

Le but de mon programme est de n'importe ou dans le monde pouvoir avoir accès a mes contact et la configuration qu'ils ont pour leur réparer leur ordi donc ma BDD est constituer de 3 Table une nommer membre ou les nom d'utilisateur et pass de ceux qui veulent accéder au programme et se "loguer" après une autre table contient les contact donc un numéro un nom un prénom une adresse une Ville un CP et Indication et dans une autre table se trouve les configuration des pc avec le numéro du contact auquel il appartient de se fait un contact peut avoir plusieurs pc.

mais je ne comprend pas ce qu'il faut utiliser dans la boite a outils ..... je vais uploader mon projets et la BDD sur free pour que vous puissiez voir ...
Phoenellion- 14 févr. 2012 à 23:15
Salut Guillaume,

D'après ce que tu dis, il te faudra une interface utilisateur pour toi comme pour tes contacts.
L'idée de faire une appli VB n'est pas mauvaise mais le fait de vouloir y accéder de n'importe où soulève la question de la mise en ligne. Et une appli VB n'est pas l'interface la plus adaptée à mon humble avis.

Tu ne voudrais pas plutôt créer une interface web (même légère) ? D'autant que ta BDD est déjà adapté à cette utilisation d'après ce que j'ai compris.

Passer par une appli VB t'obligerai à toujours garder ton programme sur toi, et héberger quand même ta bdd donc quitte à te connecter à internet, sans compter toute la partie "connection à la bdd et interaction via internet" à développer, encore qu'il est possible d'instancier Internet Explorer dans une appli VB.... à moins que tu ne préfères faire compliqué même si tu peux faire simple :)

Si l'idée te tante, sur la page de démarrage de Visual Basic Express, clique sur "Espace formation pour les développeurs débutants" (si tu ne l'as pas déjà fait)
ou alors ouvre ce lien :)
http://msdn.microsoft.com/fr-fr/beginner/default.aspx
La rubrique concernant la WebMatrix devrait t'apporter tout ce dont tu auras besoin pour créer ton site Web, ça fonctionne sur le même principe (de facilité d'approche) que Visual Basic Express.

J'espère que t'avoir apporté quelque chose.

@+
Phoe
guillaume.robier- 15 févr. 2012 à 12:54
Oui j'ai essayer de l'installer mais sa a complètement foutu en l'aire mes BDD que g été obliger de toute refaire et une interface web serait super bien mais la est la question comment agencer la page car le langage devra être du php je suppose ....

sinon j'utilise wamp server....
guillaume.robier- 15 févr. 2012 à 12:55
a oui votre site est très bien merci .
Ajouter un commentaire
Réponse
+0
moins plus
Voici le programme : http://dl.free.fr/oJ4U6oJ0n
Et Voila La BDD : http://dl.free.fr/jP6rRNGu0

Les deux peuvent comporter des faute d'orthographe ...... dsl
guillaume.robier- 16 févr. 2012 à 22:34
simplement super ! reste plus qu'a faire quelques modifs .... Merci ! je vais admirer ces lignes de code ^^
guillaume.robier- 17 févr. 2012 à 09:54
le modele_107 est super bien.


a quoi correspond ceci :

Public Const iCol_id_Ind1 As Int32 = 0
Public Const iCol_pseudo_Ind2 As Int32 = 1
Public Const iCol_pass_Ind3 As Int32 = 2
Public Const iCol_email_Ind4 As Int32 = 3
Public Const iCol_date_inscr_Ind5 As Int32 = 4

Public Const BDNomTable As String = "membres"

Public Const BD100Id As String = "id" ' Type String
Public Const BD110Pseudo As String = "pseudo" ' Type String
Public Const BD120Pass As String = "pass" ' Type String
Public Const BD130Email As String = "email" ' Type String
Public Const BD140DtInscr As String = "date_inscription" ' Type Date

BDD la modification de la BDD ne se fais que quand on ajoute la valeur par Default donc je pense que si on prend les variable inscrit dans la textbox Donc :

RecupereEntite()

on récupère les donnée dans le tableau mais qu'elle est la commande pour les envoyer vers le contrôleur SQL
Lupin.PC4- 17 févr. 2012 à 13:51
re:

Ce sont des constantes qui définissent l'ordre de lecture :

dr.Read() lit un datarow

datatable.row(0) colonne 0 -> datarow(iCol_id_Ind1)
datatable.row(0) colonne 1 -> datarow(iCol_pseudo_ind2)
etc...

le nom des champs est aussi défini par des constantes :

BD100Id = id
BD110Pseudo = pseudo
etc ...

et le nom de la table.

Ceux-ci seront utilise dans la classe PC_config_ReqSQL pour
construire les requêtes à partir de constantes. Quoi de plus
désagréable qu'une erreur de syntaxe dans une requête SQL.

donc le programme, n'a plus a se poser la question pour alimenter
les objets, voir CreerInstance

au moment de la lecture :

For Each DataRowLocal In MonDataTable.Rows   
 MonEntite = CreerInstance(DataRowLocal, pCritere.CheminBD)   
 MaCollection.Add(MonEntite)   
Next   


il faut récupérer le DataRowLocal et alimenter l'objet :

Private Function CreerInstance(ByVal objet As DataRow, ByVal pChemin As String) As TYP_ENT   

    Dim clientEntite As TYP_ENT = New TYP_ENT   

    Try   

        With clientEntite   

 If (objet.Item(TYP_COM.iCol_id_Ind1) IsNot Nothing) Then   
  .id = Convert.ToString(objet.Item(TYP_COM.iCol_id_Ind1))   
 End If   

 If (objet.Item(TYP_COM.iCol_pseudo_Ind2) IsNot Nothing) Then   
  .pseudo = Convert.ToString(objet.Item(TYP_COM.iCol_pseudo_Ind2))   
 End If   

' attention, je remarque ici que j'ai inversé l'ordre de [ pseudo et pass ] 
' ici je l'ai corrigé mais regarde dans la fonction CreerInstance de la classe 
' PC_config_ExeSQL 

'etc ...   


ici la variable objet passer en peramètre est un DataRow

objet.Item(TYP_COM.iCol_Ind1)

objet.item( index )

objet.item ( classe Constantes représenté par TYP_COM et iCol_id_Ind1 représente l'indice)

c'est l'équivalent de dire clientite.id = ConverTo.String(dararow(0))

ainsi l'objet est alimenté selon les bonnes colonnes !

et la ligne : MaCollection.Add(MonEntite)

ajoute l'objet à une collection qui est retourné.

n.b. j'ai assumé que le champs [ id ] était un identificateur unique

vour méthode ObtenirNumeroSuivant pour l'insertion de nouvelles entrées

et étant donné que l'insertion dans la BD ne se fait qu'au moment
d'appuyer sur [ Sauvegarder ], s'il y a plusieurs insertions, la fonction
retourne toujours la même valeur MAX de [ id ], il faut donc jouer
avec une variable locale OffsetNewMembre que l'on va incrémenter
de 1 à chaque insertion jusqu'a la sauvegarde, à ce moment la
variable OffsetNewMembre est remise à 0.

sous peu, je vais tenter de modifier la BD Access de ce modele pour
une BD MySql, je pourrai savoir comment modifier la connexion.

C'est un peu la force de cette implémentation, tu peux changer la
BD avec des impacts très mineurs.

Autre point, la variable CheminBD est construite à l'ouverture et
est passé en paramètre jusqu'au contrôleur, de façon à toujours
connaître le chemin de la BD lors de la création de la connexion.

L'instruction [ Application.ExecutablePath ], n'est possible que dans
une classe de type [ Form ] et nom dans une classe de type DLL.

Cdt

Lupin
Ajouter un commentaire
Réponse
+0
moins plus
Je vais regarder le programme de Lupin Sinon que me conseillerez vous en programmation php ...


tt est bon a prendre
guillaume.robier- 24 févr. 2012 à 20:23
par ailleurs pourriez vous Uploader votre BDD en SQL
Lupin.PC4- 24 févr. 2012 à 22:06
re:

malheureusement, j'ai installer MySQL hier

mysql-installer-5.5.21.0.msi

et je ne connais que très peu ...

ma connaissance sous oracle m'a permis de me débrouiller avec le WorkBench,
mais mes connaissances sont encore très limités pour MySQL !!!

je ne saurais comment uploader ma BDD en SQL, désolé.

Cdt

Lupin
guillaume.robier- 27 févr. 2012 à 10:13
D'accord moi je suis actuellement au lycée et je ne vais essayer de rester présent sur le forum. je ne vous cache pas que les ordinateur du lycée sont des Mer** (pentium4) donc voila.

je vous remercie de tout le temps passer sur ce sujet et j'imagine les heures de programmation de mon coté j'essais de comprendre les lignes de codes ce qui n'est pas toujours facile : mes opération de rectification ou d'ajout de ligne sont toujours des fiasco au moment du débogage

merci encore beaucoup

Cdt

Guillaume
Ajouter un commentaire
Ce document intitulé « Programmation VB sur BDD » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?