Cet exercice vise à développer une application qui permet de manipuler des données dans une table existante à l’aide d’une interface utilisateur simple, en utilisant Visual Basic Express 2010 et une base de données Microsoft Access.
Écrire le code CRUD avec des textBox et datagridview en Visual Basic Express 2010 pour manipuler une table existante « clients » avec les colonnes « id », « nom », « prenom », « email » et « telephone » dans une base de données existante ms Access.
L’exercice consiste à écrire un code CRUD en utilisant des TextBox et des DataGridView dans Visual Basic Express 2010 pour manipuler une table existante nommée « clients ». Cette table possède cinq colonnes : « id », « nom », « prenom », « email » et « telephone ». La table est stockée dans une base de données existante Microsoft Access, ce qui signifie que la base de données a déjà été créée et que la table est déjà définie à l’intérieur de cette base de données.
Le code CRUD permettra de créer, lire, mettre à jour et supprimer des enregistrements dans la table « clients » en utilisant une interface utilisateur simple. Les TextBox seront utilisées pour saisir les données du client, tandis que le DataGridView sera utilisé pour afficher les enregistrements de la table et permettre à l’utilisateur de sélectionner un enregistrement spécifique à manipuler.
Le code devra être écrit en utilisant Visual Basic Express 2010, un environnement de développement intégré (IDE) pour le développement d’applications Windows. Le langage de programmation utilisé sera le Visual Basic .NET, qui est un langage de programmation orienté objet utilisé pour le développement d’applications Windows.
Démarche à suive :
Pour utiliser une base de données MS Access avec Visual Basic Express 2010, vous devez utiliser la bibliothèque ADO.NET et le fournisseur de données OleDb. Voici comment créer une application CRUD avec des TextBox et DataGridView pour manipuler la table « clients » dans une base de données MS Access :
Imports System.Data.OleDb
Imports System.Configuration
Public Class frmClient
Private connectionString As String = ConfigurationManager.ConnectionStrings("YourConnectionStringName").ConnectionString
Private conn As OleDbConnection
Private Sub frmClient_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
conn = New OleDbConnection(connectionString)
LoadData()
End Sub
Private Sub LoadData()
Dim query As String = "SELECT id, nom, prenom, email, telephone FROM clients"
Dim da As New OleDbDataAdapter(query, conn)
Dim ds As New DataSet()
da.Fill(ds, "clients")
dgvClients.DataSource = ds.Tables("clients")
End Sub
End Class
Assurez-vous de remplacer « YourConnectionStringName » par le nom de votre chaîne de connexion dans votre fichier de configuration (app.config).
Ajoutez les événements des boutons pour les opérations CRUD :
Imports System.Data.OleDb
Imports System.Configuration
Public Class frmClient
Dim connectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\Crud_access.accdb"
Dim conn As New OleDbConnection(connectionString)
'Private connectionString As String = ConfigurationManager.ConnectionStrings("YourConnectionStringName").ConnectionString
'Private conn As OleDbConnection
Private Sub frmClient_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
conn = New OleDbConnection(connectionString)
LoadData()
End Sub
Private Sub LoadData()
Dim query As String = "SELECT id, nom, prenom, email, telephone FROM clients"
Dim da As New OleDbDataAdapter(query, conn)
Dim ds As New DataSet()
da.Fill(ds, "clients")
dgvClients.DataSource = ds.Tables("clients")
End Sub
' Ajouter
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
Dim query As String = "INSERT INTO clients (nom, prenom, email, telephone) VALUES (@nom, @prenom, @email, @telephone)"
Dim cmd As New OleDbCommand(query, conn)
cmd.Parameters.AddWithValue("@nom", txtNom.Text)
cmd.Parameters.AddWithValue("@prenom", txtPrenom.Text)
cmd.Parameters.AddWithValue("@email", txtEmail.Text)
cmd.Parameters.AddWithValue("@telephone", txtTelephone.Text)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
LoadData()
End Sub
' Modifier
Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
Dim query As String = "UPDATE clients SET nom=@nom, prenom=@prenom, email=@email, telephone=@telephone WHERE id=@id"
Dim cmd As New OleDbCommand(query, conn)
cmd.Parameters.AddWithValue("@id", dgvClients.CurrentRow.Cells("id").Value)
cmd.Parameters.AddWithValue("@nom", txtNom.Text)
cmd.Parameters.AddWithValue("@prenom", txtPrenom.Text)
cmd.Parameters.AddWithValue("@email", txtEmail.Text)
cmd.Parameters.AddWithValue("@telephone", txtTelephone.Text)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
LoadData()
End Sub
' Supprimer
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
Dim query As String = "DELETE FROM clients WHERE id=@id"
Dim cmd As New OleDbCommand(query, conn)
cmd.Parameters.AddWithValue("@id", dgvClients.CurrentRow.Cells("id").Value)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
LoadData()
End Sub
' Actualiser
Private Sub btnRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRefresh.Click
LoadData()
End Sub
' Charger les données du DataGridView dans les TextBox lorsqu'une ligne est sélectionnée
Private Sub dgvClients_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvClients.CellClick
If e.RowIndex >= 0 Then
Dim row As DataGridViewRow = dgvClients.Rows(e.RowIndex)
txtNom.Text = row.Cells("nom").Value.ToString()
txtPrenom.Text = row.Cells("prenom").Value.ToString()
txtEmail.Text = row.Cells("email").Value.ToString()
txtTelephone.Text = row.Cells("telephone").Value.ToString()
End If
End Sub
End Class