Table des matières
VisualBasic .NET
Cette page parle de Visual Basic .NET utilisé dans Visual Studio® 2003/2005/2008.
Types
Type | Place occupée | Contenu | Type NET correspondant |
---|---|---|---|
Boolean | 2 octets | True ou False | System.Boolean |
Byte | 1 octet | nombres entiers de 0 à 255 | System.Byte |
Short | 2 octets | Entier sur 16 bits (-32768 à 32768) | System.Int16 |
Integer | 4 octets | Entier sur 32 bits (-2147483648 à 2147483647) | System.Int32 |
Long | 8 octets | Entier sur 64 bits (-9223372036854775808 à 9223372036854775807) | System.Int64 |
Single | 4 octets | Nombre réel en virgule flottante (-1,401298 *10^-45 à 1,401298 10^45) | System.Single |
Double | 8 octets | Nombre réel en virgule flottante double précision. (..puissance 324) | System.Double |
Decimal | 16 octets | Nombre réel en virgule fixe grande précision sur 16 octets | System.Decimal |
String | Chaîne de caractères | System.String | |
Date | 8 octets | Date et heure | System.DateTime |
Char | 2 octets | 1 caractère alphanumérique | System.Char |
Objet | 4 octets | Objet de différents types | System.Object |
Énumérations
Structures de données
L'avantage d'une structure c'est qu'elle peut combiner plusieurs types de données à l'intérieur d'une même structure.
Structure Dim membre1 as DataType Dim membre2 as DataType End Structure
Il y a un minimum un membre à l'intérieur d'une structure. Ces membres peuvent être liés à d'autres types de données et ils doivent être déclarés. Déclaration par Dim
, Private
ou Public
.
Structure stEmploye Dim numero as Integer Dim nom as String Dim nas as Integer End Structure [...] Dim objEmploye as stEmploye
L'accès aux données d'une structure est la même que l'accès aux propriétés d'un objet, c'Est-à-dire le nom_de_la_sructure.nom_du_champ (exemple : objEmploye.nom
).
Par défaut les membres de la structure ont un accès public. Pour un accès privé → Private Salaire as Double
.
Structures de contrôle
If
If expression Then Instruction/Bloc d'instruction ElseIf expression Then Instruction/Bloc d'instruction Else Instruction/Bloc d'instruction End If
Select Case
Select Case expression Case valeur1 'code effectué si expression=valeur1 Case valeur2 'code effectué si expression=valeur2 Case valeur3 'code effectué si expression=valeur3 Case Else 'code effectué dans tous les autres cas End Select
Développement Windows
Multiformulaire
Une feuille (formulaire, ou form) est une classe. Pour ajouter un formulaire ⇒ Projet
→ Ajouter un formulaire
.
Instancier un objet appartenant à la classe.
dim frmTravail as new FormTravail
Boîtes de dialogue
Messag
dim Msg as String dim Title as String dim Style as MsgBoxStyle
Dim strChat As String strChat = InputBox("Entrez le nom de votre chat")
Propriétés de components
TextBox1.Size = new Size(300, 150) ' ou TextBox1.Width = 300 TextBox1.Height = 150 ' - - - - - - - - - - TextBox1.Font = new Font("Times New Roman", 26)
Membres de classe
- Accessible par la classe
- Utiliser shared
pour partager les membres de classe
Portée
Portée de module :
- Section de déclaration d'un formulaire
- Visible dans toutes les procédures du formulaire où il est déclaré
Portée de noms :
Public
ouFriend
- accessible à toutes les procédures de l'espace de nom
- Visible dans le formulaire où il est déclaré
- Visible à l'extérieur du formulaire à condition de le préfixer avec le nom du formulaire
- Valeur
Private
par défaut
Accessibilité d'un élément :
- Emplacement (portée)
- Façon dont l'élément est déclaré
Gestion des fichiers
Étapes pour l'écriture :
- Importer System.IO
- Création du fichier par l'entremise de la création d'un objet
FileStream
- Création d'un objet
StreamWriter
par lequel on sera en mesure d'écrire du texte dans le fichier. - Fermeture du fichier
Dim fsFichier as new FileStream(String, FileMode) Dim swFichier as new StreamWriter(FileStream)
Étapes pour la lecture :
- Importer System.IO
- Création du fichier par l'entremise de la création d'un objet
FileStream
- Création d'un objet
StreamReader
par lequel on sera en mesure de lire du texte dans le fichier. - Positionner le pointeur d'enregistrement →
BaseStream
- Détecter la fin de l'enregistrement
- Lire le fichier (
ReadLine
) - Fermeture du fichier
Dim fsFichier as new FileStream(String, FileMode) Dim srFichier as new StreamReader(FileStream) srFichier.BaseStream(0, SeekOrigin.Begin) while srFichier.Peek() <> -1
Traitement des erreurs
Il existe une classe d'exception.
Try [Instruction(s)] [Catch [exception] [As Type]] [when expression] Intructions Catch [Exit Try]
Classes
Public Class Facture Private mNumero As Integer Private mMontant As Double Private mRepresentant As String Private mFDate As Date Private mEnabled As Boolean Public Sub New(ByVal n As Integer, ByVal m As Double, ByVal r As String, ByVal d As Date) mNumero = n mMontant = m mRepresentant = r mFDate = d mEnabled = False End Sub Property Numero() As Integer Get Return mNumero End Get Set(ByVal Value As Integer) mNumero = Value End Set End Property Property Montant() As Double Get Return mMontant End Get Set(ByVal Value As Double) mMontant = Value End Set End Property Property Representant() As String Get Return mRepresentant End Get Set(ByVal Value As String) mRepresentant = Value End Set End Property Property FDate() As Date Get Return mFDate End Get Set(ByVal Value As Date) mFDate = Value End Set End Property Property Enabled() As Boolean Get Return mEnabled End Get Set(ByVal Value As Boolean) mEnabled = Value End Set End Property End Class
Collections
Utilisé pour faire le suivi des objets. La boîte de liste (ListBox) est un exemple de collection qui contient plusieurs items.
Dans l'utilisation personnelle d'une collection, il y a la possibilité d'utiliser une clé pour faire en sorte d'insérer, supprimer, lire et modifier un objet.
Types de collections :
- Collection à indice 0 → index de départ à 0
- Exemple : la listbox a une collection à indice 0
- Collection à indice 1
- Exemple : une instance de l'objet
Collection
→TextBox1.Text = etudiants.Items(1)
Propriétés
- Item → Accéder à un élément d'une collection
Parcourir la collection
Pour passer à travers une collection avec plusieurs éléments, on utilise la structure répétitive For Each .. Next
.
For Each element [as Datatype] In Group ... Next element
Méthode Add
Public Sub Add(_ ByVal Item as Object, _ Optional ByVal Key As String, _ Optional {Before|After} as Object = Nothing _ )
- Item → Oligatoire. Objet de tout type spécifiant le membre à ajouter à la collection.
- Key → Expression String unique spécifiant une chaine clé pouvant être utilisée à la place d'un index.
- Before
- After
Accès aux bases de données
Chacun des logiciels a son propre langage, c'est donc qu'il faut utiliser une API pour obtenir des méthodes d'accès. Ces librairies sont en fait des DLL qui sont propres à chacune des bases de données.
Les APIs sont en fait des couches d'accès aux SGBD.
- ADO / ADO.NET
- OLE DB
- DOA
- ODBC
- Fonctions de bas niveau
ODBC
Open Database Connectivity (OBCD) est un ensemble de fonctions qui permettent de manipuler des bases de données relationnelles. Ce sont les mêmes fonctions et ce qu'importe la base de données utilisée. Le principal problème est qu'avec la venue des réseaux larges (wide area network), cette méthode ne convenait plus.
DAO
Data Access Object est apparu lorsque la base de données Access est plus populaire1) et qui mena au Jet. Par la suite, DAO s'est développé pour des bases de données tels que DB2, Oracle et SQL Server.
OLE DB
Object Linking and Embedding DB qui est développé par Microsoft, offre une façon plus standardisée pour offrir une méthode d'accès aux bases de données relationnelles.
ADO / ADO.NET
Pour combiner les fonctionnalités les plus performentes et pour répondre à la programmation Internet.
ADO.NET est l'évolution d'ADO pour la plateforme .NET. Il a deux modes d'accès :
- Connecté → Connexion permanente avec le serveur
- Déconnecté → Copie locale des données
Caractéristiques
- Architecture des données déconnecté
- Utilisation du langage XML comme format d'échange de données
Fonctionnement
En mode déconnecté :
- Il faut obtenir une connexion à une source de données
- Géré par des fournisseurs d'accès aux données (providers). Ils sont adaptés aux types de données.
Classes
Deux espaces de nom
System.Data.SqlClient
→ SQL ServerSystem.Data.OleDB
→ Access, Paradox et autres
Extraction des données de la BD Deux approches
- Extraire les données en lecture seule (
DataReader
) (mode connecté) - Créer un groupe de données, on pourra alors procéder à la manipulation de données (
DataSet
) (mode déconnecté)
Connexion avec Visual Basic
- La connexion dans la BD
- Ole DB Connection → Prend en charge la connexion à un fournisseur de données OLE DB
- SQL Connection
ConnectionString
Membre de la classe OleDbConnection
, la chaine de connexion (chaine de caractères) va être utilisée pour ouvrir une connexion à la base de données. Les différents éléments de la chaine sont séparés par des point-virgule (;
).
Autres propriétés :
- ConnectionTime
- ConnectionTimeOut
- DataBase
- DataSource
- Provider
Autres méthodes :
- Open
- Close
Exemple d'une chaine de connexion :
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\donnees\bd.mdf
Extraire les données
Adaptateur de données (OleDbDataAdapter)
Fonctions :
- Extraire de la base de données les informations voulues à l'aide d'une requête SQL
SELECT
pour alimenter notre groupe de données. - Récupérer les modifications effectuées localement (groupe de données) vers la BD du serveur.
Méthodes :
- FILL → Charger les données d'une source de données dans un groupe de données
- UPDATE → Renvoyer à la source de données les modifications apportées au groupe
Groupes de données
Les groupes de données sont en fait des DataSet
. Ces groupes de données interviennent dans le mode d'accès déconnecté. Les données sont récupérées et insérées dans ces groupes de données pour être utilisées dans les applications.
Affichage des données
Deux façons de lier des contrôles à des sources de données :
- Liaison simple
- afficher dans un seul contrôle un élément de données à la fois, un seul enregistrement à la fois.
- Utiliser des boutons de navigation
- Pour se faire → faire glisser les éléments de données jusqu'au formulaire
- Liaison complexe
- Permet à un contrôle de lier plusieurs éléments de données, comme les enregistrements d'une table
- Utilisation d'un
DataGridView
.
Connexion à la BD par programmation
Pour se connecter à la base de données par programmation, il faut au minimum utiliser quatre objets :
Connection
deSystem.Data.OleDb
Command
deSystem.Data.OleDb
DataAdapter
deSystem.Data.OleDb
DataSet
Connexion
Connection = new (String) "Provider=Microsoft.Jet.OLEDB.4.0;Password=password;User ID=Admin;DataSource=C:\ClubVoyages.MDB"
Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\data\bd.mdb"
Command
S'il s'agit d'une procédure stockée, il faut spécifier le type de commande avec CommandType
.
CommandType = CommandType.Text
CommandType = CommandType.StoredProcedure
Pour les paramètres, il y a deux approches. La première consiste à ajouter les valeurs des paramètres à la suite de la requête dans la propriété CommandText
. Séparer par une virgule.
NomObjetCommande = "requete, Parametre1 [,parametre2,parametren]" CmdVoyages.CommandText = "RDUREE,7,10"
La deuxième approche consiste à utiliser directement les paramètres de la commande.
cmdVoyages.CommandText = "reqete" Dim Parametre1 as OleDbParameter = cmdVoyages.Parameters.Add("DUREE", OleDbType.Char) Parametre1.Value = 7
Objets de données
DataView
Objet DataView permet le tri et le filtrage d'une seule table. Il a pour avantage de trier (sort), de rechercher (find, findrows) et filtrer les lignes (rowfilter).
dim dvClients as DataView = new (dsClients.Tables("Clients"), "Country = 'USA'","ContactName", DataViewRowState.CurrentRows)
Affichage des données
Liaison simple
txtNom.DataBindings.Add("Text", dsMembre1, "Membres.nom") txtNom.Text = dsMembre.Tables(0).Rows(0).Item(0).ToString
Établir une relation maître/détail
- Ajouter des tables en relation
- Utiliser un objet
DataRelation
- La fonction de l'objet est de prendre en charge les relations de données entre les tables
Procédure
- Création d'un objet
Connection
- Création de deux objets adapteurs de données
- Table maître
- Table détail
- Créer un groupe de données contenant les deux tables
- Définir les colonnes
- Déclaration de deux variables de type
DataColumn
- Initialisation des variables
Colonne1
etColonne2
de façon à ce qu'elle référence le champ commun dans chacune des tables- En utilisant la propriété
Columns
de l'objetDataTable
lui-même à l'intérieur duDataSet
. - Assigner →
DataColumn = Groupededonnees.Tables(“nomtable”).Columns(“nomColonne”)
- Créer la relation (
DataRelation
)- Arguments → Nom de la variable Relation, nom de la colonne1 (maître), nom de la colonne détail
dim drRelation as DataRelation = new DataRelation(“nomRelation”, colonneMaitre, colonneDetail)
- Relier la relation au groupe de données par l'ajout de l'objet relation à la collection
Relations
du groupe de données.dsGroupeDonnees.Relations.Add(drRelation)