Bases de donnees – visual c# ado.net utilisation d’un datag

ADO.NET Consultation, Ajout, Modification, Suppression

Liaison C# - SQL Server 2000 L. Hassouni 1 BASES DE DONNEES – VISUAL C# ADO.NET Utilisation d’un DataGrid Objet : Mettre à jour une base de données en utilisant les classes DataSet et DataAdapter. Classes utilisées : SqlConnection, SqlDataAdapter, SqlCommand, DataSet Travail à faire : 1-Réalisez l’interface ci-dessous La structure des menus de l’interface est fourni ci-dessous : Connection Consultation Action .... Connecter .... Premier .... Select .... Deconnecter .... Precedent .... Insert

.... Suivant .... Update

.... Dernier .... Delete 2-Ecrire les gestionnaires de l’événement Click pour chacun des boutons et menus. ADO.NET Consultation, Ajout, Modification, Suppression

Liaison C# - SQL Server 2000 L. Hassouni 2 Correction ........................ using System.Data; using System.Data.SqlClient; .............. /// Variable nécessaire au concepteur.

static SqlConnection MySqlConn;

static SqlCommand MySelectCmd, MyInsertCmd, MyUpdateCmd, MyDeleteCmd;

static SqlDataAdapter MySqlDataAdapter;

static DataSet MyDataSet;

static DataRow MyWorkRow;

static int NumEnreg, NbEnreg;

static string MyStrConn, MyStrSelect, MyStrInsert, MyStrUpdate, MyStrDelete; ................... private void Connecter(object sender, System.EventArgs e) { MyStrConn = "Server = Localhost; Integrated Security = SSPI; Initial Catalog = SQLNotation"; MySqlConn = new SqlConnection(MyStrConn); MySqlConn.Open(); MyStrSelect = "SELECT CodeEnseignant, Nom, Prenom, DateNaissance FROM Enseignants"; MySelectCmd = new SqlCommand(MyStrSelect,MySqlConn); MyStrInsert = "INSERT INTO Enseignants "+

"(CodeEnseignant, Nom, Prenom, DateNaissance) " +

"Values (@CodeEnseignant, @Nom, @Prenom, @DateNaiss)"; MyInsertCmd = new SqlCommand(MyStrInsert, MySqlConn); MyInsertCmd.Parameters.Add("@CodeEnseignant", SqlDbType.TinyInt,0,"CodeEnseignant"); MyInsertCmd.Parameters.Add("@Nom", SqlDbType.VarChar, 25, "Nom"); MyInsertCmd.Parameters.Add("@Prenom", SqlDbType.VarChar, 15, "Prenom"); MyInsertCmd.Parameters.Add("@DateNaiss", SqlDbType.SmallDateTime, 0, "DateNaissance"); MyStrUpdate = "UPDATE Enseignants SET CodeEnseignant=@CodeEnseignant, "+

"Nom = @Nom, Prenom = @Prenom, DateNaissance = @DateNaiss "+

"Where CodeEnseignant = @CodeEns"; MyUpdateCmd = new SqlCommand(MyStrUpdate, MySqlConn); MyUpdateCmd.Parameters.Add("@CodeEnseignant", SqlDbType.TinyInt,0,"CodeEnseignant"); MyUpdateCmd.Parameters.Add("@Nom", SqlDbType.VarChar, 25, "Nom"); MyUpdateCmd.Parameters.Add("@Prenom", SqlDbType.VarChar, 15, "Prenom"); MyUpdateCmd.Parameters.Add("@DateNaiss", SqlDbType.SmallDateTime, 0, "DateNaissance"); SqlParameter WorkParam = MyUpdateCmd.Parameters.Add("@CodeEns", SqlDbType.TinyInt); WorkParam.SourceColumn = "CodeEnseignant"; WorkParam.SourceVersion = DataRowVersion.Original; MyStrDelete = "DELETE Enseignants WHERE CodeEnseignant = @CodeEnseignant"; MyDeleteCmd = new SqlCommand(MyStrDelete, MySqlConn); MyDeleteCmd.Parameters.Add("@CodeEnseignant", SqlDbType.TinyInt, 0, "CodeEnseignant"); MyDataSet = new DataSet(); MySqlDataAdapter = new SqlDataAdapter(); MySqlDataAdapter.SelectCommand = MySelectCmd; MySqlDataAdapter.UpdateCommand = MyUpdateCmd; MySqlDataAdapter.InsertCommand = MyInsertCmd; MySqlDataAdapter.DeleteCommand = MyDeleteCmd; } private void SelectEnreg(object sender, System.EventArgs e) { MySqlDataAdapter.Fill(MyDataSet, "Enseignants"); NbEnreg = MyDataSet.Tables["Enseignants"].Rows.Count; ADO.NET Consultation, Ajout, Modification, Suppression

Liaison C# - SQL Server 2000 L. Hassouni 3 DgEnseignant.SetDataBinding(MyDataSet, "Enseignants"); } private void AfficheEnreg(int Num) { MyWorkRow = MyDataSet.Tables["Enseignants"].Rows[NumEnreg]; TxtCodeEns.Text = MyWorkRow["CodeEnseignant"].ToString(); TxtNom.Text = MyWorkRow["Nom"].ToString();; TxtPrenom.Text = MyWorkRow["Prenom"].ToString(); TxtDateNaiss.Text = MyWorkRow["DateNaissance"].ToString(); TxtNumNbEnreg.Text = (NumEnreg+1).ToString()+ "/ " + NbEnreg.ToString(); } private void PremierEnreg(object sender, System.EventArgs e) { NumEnreg = 0; AfficheEnreg(NumEnreg);

} private void PrecedentEnreg(object sender, System.EventArgs e) { if (NumEnreg > 0) {

NumEnreg--;

AfficheEnreg(NumEnreg); } else

MessageBox.Show("Vous êtes sur le premier enreg"); } private void SuivantEnreg(object sender, System.EventArgs e) { if (NumEnreg <- NbEnreg-1) {

NumEnreg++;

AfficheEnreg(NumEnreg); } else {

MessageBox.Show("Vous êtes sur le dernier enreg");

TxtCodeEns.Clear();

TxtNom.Clear();

TxtPrenom.Clear();

TxtDateNaiss.Clear(); } } private void DernierEnreg(object sender, System.EventArgs e) { NumEnreg = NbEnreg-1; AfficheEnreg(NumEnreg); } private void Deconnecter(object sender, System.EventArgs e) { MySqlConn.Close(); } ADO.NET Consultation, Ajout, Modification, Suppression

Liaison C# - SQL Server 2000 L. Hassouni 4 private void InsertEnreg(object sender, System.EventArgs e) { MyWorkRow = MyDataSet.Tables["Enseignants"].NewRow(); MyWorkRow["CodeEnseignant"] = byte.Parse(TxtCodeEns.Text); MyWorkRow["Nom"] = TxtNom.Text; MyWorkRow["Prenom"] = TxtPrenom.Text; MyWorkRow["DateNaissance"] = DateTime.Parse(TxtDateNaiss.Text); MyDataSet.Tables["Enseignants"].Rows.Add(MyWorkRow); MySqlDataAdapter.Update(MyDataSet, "Enseignants"); NbEnreg++;NumEnreg++; TxtNumNbEnreg.Text = (NumEnreg+1).ToString()+ "/ " + NbEnreg.ToString(); } private void UpdateEnreg(object sender, System.EventArgs e) { MyWorkRow = MyDataSet.Tables["Enseignants"].Rows[NumEnreg]; MyWorkRow["CodeEnseignant"] = byte.Parse(TxtCodeEns.Text); MyWorkRow["Nom"] = TxtNom.Text; MyWorkRow["Prenom"] = TxtPrenom.Text;

MyWorkRow["DateNaissance"] = DateTime.Parse(TxtDateNaiss.Text); MySqlDataAdapter.Update(MyDataSet, "Enseignants"); TxtNumNbEnreg.Text = (NumEnreg+1).ToString()+ "/ " + NbEnreg.ToString(); } private void DeleteEnreg(object sender, System.EventArgs e) { MyDataSet.Tables["Enseignants"].Rows[NumEnreg].Delete(); MySqlDataAdapter.Update(MyDataSet, "Enseignants"); NbEnreg--; if (NumEnreg == NbEnreg)

NumEnreg = NbEnreg - 1; AfficheEnreg(NumEnreg); } ADO.NET Consultation, Ajout, Modification, Suppression

Liaison C# - SQL Server 2000 L. Hassouni 5 3- Réaliser l’interface ci-dessous La structure des menus est : Connection Action .... Connecter .... Consulter la base .... Deconnecter .... Mettre à jour la base 4-Ecrire les gestionnaires de l’événement Click pour chacun des boutons et menus. /// Variable nécessaire au concepteur. static SqlConnection MySqlConn; static SqlCommand MySelectCmd, MyInsertCmd, MyUpdateCmd, MyDeleteCmd; static SqlDataAdapter MySqlDataAdapter; static DataSet MyDataSet; static string MyStrConn, MyStrSelect, MyStrInsert, MyStrUpdate,MyStrDelete; private void Connecter(object sender, System.EventArgs e) { try {

MyStrConn = "Server = Localhost; Integrated Security = SSPI; Initial Catalog = SQLNotation";

MySqlConn = new SqlConnection(MyStrConn);

MySqlConn.Open();

MyStrSelect = "SELECT CodeEnseignant, Nom, Prenom,

DateNaissance FROM Enseignants";

MySelectCmd = new SqlCommand(MyStrSelect,MySqlConn);

MyStrInsert = "INSERT INTO Enseignants "+

"(CodeEnseignant, Nom, Prenom, DateNaissance) "+

"Values (@CodeEnseignant, @Nom, @Prenom, @DateNaiss)"; ADO.NET Consultation, Ajout, Modification, Suppression

Liaison C# - SQL Server 2000 L. Hassouni 6

MyInsertCmd = new SqlCommand(MyStrInsert, MySqlConn);

MyInsertCmd.Parameters.Add("@CodeEnseignant", SqlDbType.TinyInt,0,"CodeEnseignant");

MyInsertCmd.Parameters.Add("@Nom", SqlDbType.VarChar, 25, "Nom");

MyInsertCmd.Parameters.Add("@Prenom", SqlDbType.VarChar, 15, "Prenom");

MyInsertCmd.Parameters.Add("@DateNaiss", SqlDbType.SmallDateTime, 0, "DateNaissance");

MyStrUpdate = "UPDATE Enseignants SET CodeEnseignant=@CodeEnseignant, "+

"Nom = @Nom, Prenom = @Prenom, DateNaissance=@DateNaiss "+

"Where CodeEnseignant = @OldCodeEns";

MyUpdateCmd = new SqlCommand(MyStrUpdate, MySqlConn);

MyUpdateCmd.Parameters.Add("@CodeEnseignant", SqlDbType.TinyInt,0,"CodeEnseignant");

MyUpdateCmd.Parameters.Add("@Nom", SqlDbType.VarChar, 25, "Nom");

MyUpdateCmd.Parameters.Add("@Prenom", SqlDbType.VarChar, 15, "Prenom");

MyUpdateCmd.Parameters.Add("@DateNaiss", SqlDbType.SmallDateTime, 0, "DateNaissance");

SqlParameter WorkParam = MyUpdateCmd.Parameters.Add("@OldCodeEns", SqlDbType.TinyInt);

WorkParam.SourceColumn = "CodeEnseignant";

WorkParam.SourceVersion = DataRowVersion.Original;

MyStrDelete = "DELETE Enseignants WHERE CodeEnseignant = @CodeEnseignant";

MyDeleteCmd = new SqlCommand(MyStrDelete, MySqlConn);

MyDeleteCmd.Parameters.Add("@CodeEnseignant", SqlDbType.TinyInt, 0, "CodeEnseignant");

MyDataSet = new DataSet();

MySqlDataAdapter = new SqlDataAdapter();

MySqlDataAdapter.SelectCommand = MySelectCmd;

MySqlDataAdapter.UpdateCommand = MyUpdateCmd;

MySqlDataAdapter.InsertCommand = MyInsertCmd;

MySqlDataAdapter.DeleteCommand = MyDeleteCmd; } catch (Exception MyE) {

MessageBox.Show(MyE.Message); } } private void Consulter(object sender, System.EventArgs e) { MySqlDataAdapter.Fill(MyDataSet, "Enseignants"); DgEnseignant.SetDataBinding(MyDataSet, "Enseignants"); } private void Deconnecter(object sender, System.EventArgs e) { MySqlConn.Close(); } private void MettreAjourLaBase(object sender, System.EventArgs e) { try {

MySqlDataAdapter.Update(MyDataSet, "Enseignants"); } catch (Exception MyE) {

MessageBox.Show (MyE.Message); }

}