-
BDD avec VB.NET
Bonjour tout le monde.
Depuis plusieurs jours je lis, relis, parcours de nombreux tutoriaux sur les bases de données avec Visual Studio pour VB.NET. Néanmoins j'ai beaucoup de mal à faire la part des choses et quoi faire.
Déjà dans la création de la base il y a plusieurs possibilités. Je ne parle ici que d'une base SQL.
Il y a la possibilité de créer une base classiquement avec SQL Server mais aussi directement dans VS (que j'ai en version 2005). Impossible de trouver un tutorial capable de traiter des différences qu'il peut exister entre les 2.
Pour faire simple je me suis dit qu'il vallait mieux créer ma base directement dans VS2005 et il semble par conséquent qu'il y ait des différences, par exemple je n'ai pas besoin de créer une connection (en tout cas ma listbox se remplit correctement et seulement avec une ligne).
Le fait que ma listbox se remplisse correctement me fait venir au 2 ème problème que me pose cette BDD.
En parcourant une grande partie des Tutoriaux, beaucoup traitent du code et de ADO.NET. Un coup on met un peu de SQL, un coup on en met pas, et comme j'ai dis dans un autre post, beaucoup de tutoriaux font référence à une base Access Microsoft.
En parcourant un peu MSDN, il est finalement possible de faire énormément de choses "graphiquement" avec les différents éditeurs de VS2005, les glisser-déposer, ... la petite ligne de code qui remplit ma listbox vient de là d'ailleurs, j'ai rien écrit et ça fonctionne niquel. Mais cette manière de procéder et très rapidement limitée.
Bref j'aurais besoin d'aide au moins pour m'aiguiller sur des tutoriaux qui traitent de la création (et accessoirement de son utilisation) d'une BDD SQL avec VS, et des tutoriaux simples pour manipuler les données car le coup des DataSet, TableAdapter et DataTable c'est pas des plus évidents.
Y a quelques temps j'avais commencé un site en PHP et la manipulation en mysql était bien plus simple.
Merci.
-
déjà peu importe la base, les objets sont les meme, c'est juste le namespace qui change
pour access c'est dans system.data.oledb pour sql server c'est dans system.data.sqlclient
tout marche par héritage de system.Data.common
ensuite il est possible d'utiliser les assistants de VS, qui ne font que généré du code à mon gout un peu trop lourd (je suis pas fan des dataset)
si tu veux taper le code toi meme il y a quelques objets à connaitre :
il y a le dbconnection (oledbconnection, sqlconnection ou autre)
qui sert à établir la connection (fournir une chaine en string, méthode open et close)
dbcommand, il faut lui donner une connexion (l'ouvrir avant de faire execute), une requete, éventuellement des parametres et faire soit executenonquery (pour les insert delete update et autre requete qui ne retourne rien) soit faire executereader (et récupérer le dbreader quie ca retourne)
le dbdatareader est retourné par executereader, c'est un genre de curseur en avant sur les données
dbdatareader.read permet d'avancer le curseur d'un cran, et retourne true s'il a réussi (false s'il n'y a plus de lignes ou aucune)
un fois la ligne positionée il est possible de lire les données de chaque colonne
le datatable est un objet (non graphique) qui sert à stocker les données sous forme de tableau (ainsi que quelques infos sur les colonnes)
le dataview permet de faire des tri et filtre sur un datatable
le dataset permet de faire des mises à jour sur la base à partir d'un datatable provenant d'une base de données (il a besoin d'un dataadapter, objet qui fabrique les requete d'udpate, d'insert et de delete)
donc si tu programme pour tes loisirs, tu peux essayer le dataset, l'avantage c'est qu'il y a peu de code à taper, tu mets le dataset dans un datagridview et il y a des fonctions pour les modifications sur le datagridview (et donc sur le dataset) soient répercutées sur la base de données
(c'est vrai que pour un datagridview, le dataset est quand meme 100x plus simple)
si tu as un peu plus de temps et/ou que tu veux faire un truc performant, tu peux te passer du dataset dans beaucoup de cas
le dataset ne fait qu'utiliser un datareader pour remplir un datatable
pour la création de la base, si tu es sur sql server CE tu peux le faire dans VS, si tu sur sql server normal je pencherais plus pour tout faire dans studio management
-
Pour la BDD je peux utiliser SQL Server Express mais il est possible de créer une base directement sous Visual Studio, ce que j'ai fait.
Dans mon FormLoad j'ai juste cette ligne :
Code:
Me.VendorTestTableAdapter.Fill(Me.MabasetestDataSet.VendorTest)
qui a été générée automatiquement par Visual Studio. Ensuite j'ai associé une listebox avec un champ d'une table par glisser déposer, ce qui créé un biding accessible par le menu de la listbox dans l'onglet design.
Et alors que j'ai aucune ligne de code associant ma listbox à mon dataset, les données de ma table se chargent correctement dans ma listbox. Pas de ligne de connection, pas de ligne de commande ...
Si j'ai bien compris, l'utilisation des DataSet et compagnie c'est de l'ADO.NET
Ce que je trouve déroutant c'est le fait que dans beaucoup de tutoriaux les termes DataSet et autres sont utilisés mais rarement avec des exemples graphiques, seul M. Lasserre le fait mais tous les exemples associent beaucoup de code.
Et tout mon problème est là, j'ai du mal à associer les exemples de code avec le DataGridView visuel.
-
ado.net c'est tout ce qui est pour les accès aux bases de données en .net
quand tu utilises les assistants, le code est généré automatiquement, il doit se trouver dans la sub initializecomponent (dans le fichier designer, caché par défaut dans l'explorateur de solution (2eme icone en haut pour basculer))
-
Edit
Bon en reprenant doucement le tuto de M. Lasserre le ciel s'éclaircit car je commence à faire la connection entre le codage et mes éléments visuels.
Par exemple je viens de me rendre compte que lorque je créé dans l'onglet Server Explorer à gauche une connection à une BDD (un fichier .mdf sur mon disque local pour mon cas), dans les paramètres de cette connection j'ai directement ma Connection String. En fait c'est le "tout automatique" qui me déroute un peu car si on commence à utiliser ce système il devient difficile de savoir ce qui nous est nécessaire de mettre comme code (connection, commande, ...)
Si jamais, quand j'aurais beaucoup plus de connaissances, j'ai un peu de temps j'essairais de faire un tuto sur la parallèle entre de la programmation pure et l'utilisation de l'interface de Visual Studio pour dialoguer avec une BDD.
Par exemple y a même un éditeur qui permet dans les TableAdaptater de créer des requêtes en sélectionnant si on veut faire un SELECT, INSERT ou autre puis les champs à sélectionner en fonction des tables que l'on a besoin. Y a limite peu voir pas de connaissances à avoir en SQL pour faire ça puisque le code est généré automatiquement et que l'on peut nommer soit-même cette procédure (comme Fill,GetData() qui est créée automatiquement quand on créé "graphiquement" les TableAdaptater).
Merci pour ton aide car je sais maintenant ou se situe le codé généré par Visual Studio.
Petit Edit pour ceux qui veulent faire une BDD SQL en .NET, il faut suivre le tutorial de M.Lasserre ici : http://plasserre.developpez.com/cour...bases-donnees2
et remplacer les instructions qui commencent par OleDb... par SQL...