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 ⇒ ProjetAjouter 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 :

  1. Section de déclaration d'un formulaire
  2. Visible dans toutes les procédures du formulaire où il est déclaré

Portée de noms :

  1. Public ou Friend
    1. accessible à toutes les procédures de l'espace de nom
    2. Visible dans le formulaire où il est déclaré
    3. Visible à l'extérieur du formulaire à condition de le préfixer avec le nom du formulaire
    4. Valeur Private par défaut

Accessibilité d'un élément :

  1. Emplacement (portée)
  2. Façon dont l'élément est déclaré

Gestion des fichiers

Étapes pour l'écriture :

  1. Importer System.IO
  2. Création du fichier par l'entremise de la création d'un objet FileStream
  3. Création d'un objet StreamWriter par lequel on sera en mesure d'écrire du texte dans le fichier.
  4. Fermeture du fichier
Dim fsFichier as new FileStream(String, FileMode)
Dim swFichier as new StreamWriter(FileStream)

Étapes pour la lecture :

  1. Importer System.IO
  2. Création du fichier par l'entremise de la création d'un objet FileStream
  3. Création d'un objet StreamReader par lequel on sera en mesure de lire du texte dans le fichier.
  4. Positionner le pointeur d'enregistrement → BaseStream
  5. Détecter la fin de l'enregistrement
  6. Lire le fichier (ReadLine)
  7. 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 :

Propriétés

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 _
)

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.

  1. ADO / ADO.NET
  2. OLE DB
  3. DOA
  4. ODBC
  5. 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 :

  1. Connecté → Connexion permanente avec le serveur
  2. Déconnecté → Copie locale des données

Caractéristiques

Fonctionnement

En mode déconnecté :

  1. 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

  1. System.Data.SqlClient → SQL Server
  2. System.Data.OleDB → Access, Paradox et autres

Extraction des données de la BD Deux approches

  1. Extraire les données en lecture seule (DataReader) (mode connecté)
  2. 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

  1. 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 :

Autres méthodes :

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 :

  1. 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.
  2. Récupérer les modifications effectuées localement (groupe de données) vers la BD du serveur.

Méthodes :

  1. FILL → Charger les données d'une source de données dans un groupe de données
  2. 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 :

  1. 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
  2. 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 :

  1. Connection de System.Data.OleDb
  2. Command de System.Data.OleDb
  3. DataAdapter de System.Data.OleDb
  4. 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.

  1. CommandType = CommandType.Text
  2. 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

  1. Ajouter des tables en relation
  2. Utiliser un objet DataRelation
    • La fonction de l'objet est de prendre en charge les relations de données entre les tables

Procédure

  1. Création d'un objet Connection
  2. Création de deux objets adapteurs de données
    1. Table maître
    2. Table détail
  3. Créer un groupe de données contenant les deux tables
  4. Définir les colonnes
    • Déclaration de deux variables de type DataColumn
  5. Initialisation des variables Colonne1 et Colonne2 de façon à ce qu'elle référence le champ commun dans chacune des tables
    • En utilisant la propriété Columns de l'objet DataTable lui-même à l'intérieur du DataSet.
    • Assigner → DataColumn = Groupededonnees.Tables(“nomtable”).Columns(“nomColonne”)
  6. 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)
  7. 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)
1)
vérifier cette information