Mar.27
TP13 : Les opérations de la mise à jour en mode déconnecté
Objectif
L’objectif de ce TP est de s’habituer à utiliser les opérations de la mise à jour en mode déconnecté.
Questions
- Créer l’interface suivante :

- Écrire le code nécessaire qui permet de remplir le dataGridView avec les livres de la base de données bibliotheque.
- Écrire le code pour le Bouton Ajouter qui permet d’ajouter un nouveau livre de la table livre en mode déconnecté.
- Écrire le code pour le Bouton Modifier qui permet de modifier un livre de la table livre en mode déconnecté.
- Écrire le code pour le Bouton Supprimer qui permet de supprimer un livre de la table livre en mode déconnecté.
- Écrire le code pour le Bouton Enregistre qui permet de valider les mises à jour sur la table livre.
Correction
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace TP14_bib_2
{
public partial class Form1 : Form
{
SqlConnection conn = new SqlConnection("server = DESKTOP-EIALG0J\\SQLEXPRESS; database = bibliotheque; integrated security = SSPI");
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();
public Form1()
{
InitializeComponent();
}
private void button4_Click(object sender, EventArgs e)
{
codeLivre.Text = "";
titreLivre.Text = "";
auteurLivre.Text = "";
nbrLivre.Text = "";
}
private void Form1_Load(object sender, EventArgs e)
{
conn.Open();
SqlDataAdapter ad = new SqlDataAdapter("select * from livre",conn);
ad.Fill(ds,"livre");
dv.DataSource = ds.Tables["Livre"];
conn.Close();
}
private void button1_Click(object sender, EventArgs e)
{
DataRow ligne;
ligne = ds.Tables["Livre"].NewRow();
ligne["CodeL"] = codeLivre.Text;
ligne["Titre"] = titreLivre.Text;
ligne["Auteur"] = auteurLivre.Text;
ligne["NbExemplaires"] = int.Parse(nbrLivre.Text);
ds.Tables["Livre"].Rows.Add(ligne);
}
private void button3_Click(object sender, EventArgs e)
{
int x=-1;
for (int i = 0; i < ds.Tables["Livre"].Rows.Count; i++) {
if (codeLivre.Text == ds.Tables["Livre"].Rows[i][0].ToString()) {
x=i;
}
}
if (x != -1)
{
ds.Tables["Livre"].Rows[x].Delete();
}
else {
MessageBox.Show("Livre introuvable");
}
}
private void button2_Click(object sender, EventArgs e)
{
int x = -1;
for (int i = 0; i < ds.Tables["Livre"].Rows.Count; i++)
{
if (codeLivre.Text == ds.Tables["Livre"].Rows[i][0].ToString())
{
x = i;
}
}
if (x != -1)
{
ds.Tables["Livre"].Rows[x][1] = titreLivre.Text;
ds.Tables["Livre"].Rows[x][2] = auteurLivre.Text;
ds.Tables["Livre"].Rows[x][3] = nbrLivre.Text;
//ds.Tables["Livre"].Rows[x].BeginEdit();
//ds.Tables["Livre"].Rows[x][1] = titreLivre.Text;
//ds.Tables["Livre"].Rows[x][2] = auteurLivre.Text;
//ds.Tables["Livre"].Rows[x][3] = nbrLivre.Text;
//ds.Tables["Livre"].Rows[x].EndEdit();
}
else
{
MessageBox.Show("Livre introuvable");
}
}
private void button5_Click(object sender, EventArgs e)
{
conn.Open();
SqlDataAdapter ad = new SqlDataAdapter("select * from livre", conn);
SqlCommandBuilder sqb = new SqlCommandBuilder(ad);
ad.Update(ds,"livre");
conn.Close();
}
}
}
