Backup Restore Fathoexercice

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

public partial class Form2 : Form

{
SqlConnection cnn;
SqlCommand cmd;
DataTable dt;
int numero;
public Form2()
{
InitializeComponent();
}
Mr Fathallah
Développement d’Application Client Serveur
private void label7_Click(object sender, EventArgs e)
{
Form1 fr = new Form1();
fr.Visible = true;
this.Visible = false;
}

void RemplirGrid()
{
string q = "";
q += "select E.numE,E.nomE,E.sexeE,E.dateN,E.Filiere,G.Libelle from
Etudiant E";
q += " inner join Groupe G on E.numg=G.numG";
cmd = new SqlCommand(q, cnn);
dt = new DataTable();
if (cnn.State == ConnectionState.Closed) cnn.Open();
dt.Load(cmd.ExecuteReader());
cnn.Close();
dataGridView1.DataSource = dt;
}
void remplirCbo()
{
string q = "Select numg,Libelle from Groupe";
dt = new DataTable();
cmd = new SqlCommand(q, cnn);
if (cnn.State == ConnectionState.Closed) cnn.Open();
dt.Load(cmd.ExecuteReader());
cnn.Close();
cboF.DataSource = dt;
cboF.DisplayMember = "Libelle";
cboF.ValueMember = "numg";

}
private void Form2_Load(object sender, EventArgs e)
{

//récuperer le nom de la chaine de connection:maConn à partir du


fichier App.Config
string maconn =
ConfigurationManager.ConnectionStrings["maConn"].ConnectionString;
cnn = new SqlConnection(maconn);
RemplirGrid();
remplirCbo();
cboF.SelectedIndex = -1;

private void dataGridView1_Click(object sender, EventArgs e)


{
int n = dataGridView1.CurrentRow.Index;
numero = int.Parse(dataGridView1.Rows[n].Cells[0].Value.ToString());
txtNum.Text = numero + "";
txtNom.Text = dataGridView1.Rows[n].Cells[1].Value.ToString();
if(char.Parse(dataGridView1.Rows[n].Cells[2].Value.ToString())=='M')
{
rdM.Checked = true;
}
else
{
rdF.Checked = true;
}
Mr Fathallah
Développement d’Application Client Serveur
dtp.Text= dataGridView1.Rows[n].Cells[3].Value.ToString();
txtF.Text = dataGridView1.Rows[n].Cells[4].Value.ToString();
cboF.Text = dataGridView1.Rows[n].Cells[5].Value.ToString();
btnDelete.Enabled = true;
btnUpdate.Enabled = true;

private void btnUpdate_Click(object sender, EventArgs e)


{
try
{
char s = (rdM.Checked) ? 'M' : 'F';
string q = "";
q += "Update Etudiant set numE=" + txtNum.Text + ",nomE='" +
txtNom.Text + "',";
q += "sexeE='" + s + "',dateN='" + dtp.Text + "',";
q += "Filiere='" + txtF.Text + "',numg=" + cboF.SelectedValue + "";
q += " where numE=" + numero + "";
cmd = new SqlCommand(q, cnn);
if (cnn.State == ConnectionState.Closed) cnn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("l'étudiant a été modifié avec succées");
RemplirGrid();//mettre à jour l'affichage
}
catch ( Exception ex)
{

MessageBox.Show(ex.Message);
}
finally
{
cnn.Close();
}

private void btnDelete_Click(object sender, EventArgs e)


{
try
{
DialogResult rep = MessageBox.Show("voulez-vous vraiment supprimer
l'etudiant: "
+ txtNom.Text , "Suppression", MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
if (rep == DialogResult.Yes)
{
string q = "Delete from Etudiant where numE=" + numero + "";
cmd = new SqlCommand(q, cnn);
if (cnn.State == ConnectionState.Closed) cnn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("l'étudiant: " + txtNom.Text + " a été supprimé
avec succées");
txtNum.Text = txtNom.Text = txtF.Text = cboF.Text = "";
rdF.Checked = rdM.Checked = false;
RemplirGrid();
}
}
catch (Exception ex)
{

MessageBox.Show(ex.Message);
Mr Fathallah
Développement d’Application Client Serveur
}
finally
{
cnn.Close();
}

private void txtSearch_TextChanged(object sender, EventArgs e)


{
try
{
string q = "";
q += "select E.numE,E.nomE,E.sexeE,E.dateN,E.Filiere,G.Libelle from
Etudiant E";
q += " inner join Groupe G on E.numg=G.numG";
q += " Where nomE like '" + txtSearch.Text + "%'";
cmd = new SqlCommand(q, cnn);
dt = new DataTable();
if (cnn.State == ConnectionState.Closed) cnn.Open();
dt.Load(cmd.ExecuteReader());
cnn.Close();
dataGridView1.DataSource = dt;

}
catch
{

return;
}

}
}

Mr Fathallah
Développement d’Application Client Serveur
public partial class Form3 : Form
{
SqlConnection cnn;
SqlCommand cmd;
public Form3()
{
InitializeComponent();
}

private void Form3_Load(object sender, EventArgs e)


{
string maconn =
ConfigurationManager.ConnectionStrings["maConn"].ConnectionString;
cnn = new SqlConnection(maconn);
}

private void label7_Click(object sender, EventArgs e)


{
Form1 fr = new Form1();
fr.Visible = true;
this.Visible = false;
}

private void button1_Click(object sender, EventArgs e)


{
//bouton parcourir pour choisir le chemin pour le backup
FolderBrowserDialog fbd = new FolderBrowserDialog();
if(fbd.ShowDialog()==DialogResult.OK)
{
textBox1.Text = fbd.SelectedPath;
btnBackup.Enabled = true;
}
}

private void btnBackup_Click(object sender, EventArgs e)


{
try
{
//on veut sauvegarder notre base de données avec le même nom et avec
la date complete
DateTime dt = DateTime.Now;//pour extraire l'année,le mois, le
jour,........
//récuperer le nom de la base de données à
partir de la connection
string mabase = cnn.Database.ToString();
//fichier =nom fichier + extension
string filename = textBox1.Text + @"\" + mabase + "_" + dt.Year
+ "_" + dt.Month + "_" + dt.Day + "_" + dt.Hour + "_" + dt.Minute
+ "_" + dt.Second;
string q = "Backup Database " + mabase + " To Disk='" + filename +
".bak'";
cmd = new SqlCommand(q, cnn);
if (cnn.State == ConnectionState.Closed) cnn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("la base de données a été sauvegardé avec succées");
}
catch (Exception ex)
{

MessageBox.Show(ex.Message);
Mr Fathallah
Développement d’Application Client Serveur
}
finally
{
cnn.Close();
}

}
}

public partial class Form4 : Form


{
SqlConnection cnn;
SqlCommand cmd;
public Form4()
{
InitializeComponent();
}

private void label7_Click(object sender, EventArgs e)


{
Form1 fr = new Form1();
fr.Visible = true;
this.Visible = false;
}

private void button1_Click(object sender, EventArgs e)


{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Fichiers backup|*.bak";
if(ofd.ShowDialog()==DialogResult.OK)
{
textBox1.Text = ofd.FileName;
btnRestore.Enabled = true;

}
}

private void Form4_Load(object sender, EventArgs e)


{
//c'est à partir du schema Master qu'on accede à une base de données
//use nom_base;
cnn = new SqlConnection(@"data
source=.\sqlexpress;database=Master;integrated security=true");

Mr Fathallah
Développement d’Application Client Serveur
}

private void btnRestore_Click(object sender, EventArgs e)


{
try
{
string q = "";
//pour avoir l'accées exlusif à la base de données=deconnecter la base
de données(OFFLINE)
//car la base de données est en cours d'utilisation
//with Rollback immediate:en cas d'erreur Rollback=transaction
q += "Alter Database dbCfmoti set OFFLINE with ROLLBACK IMMEDIATE;";
q += "Restore Database dbCfmoti From Disk='" + textBox1.Text + "'";
cmd = new SqlCommand(q, cnn);
if (cnn.State == ConnectionState.Closed) cnn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("la base de données a été restaurée avec succées");
}
catch (Exception ex)
{

MessageBox.Show(ex.Message);
}
finally
{
cnn.Close();
}
}
}

Mr Fathallah
Développement d’Application Client Serveur

You might also like