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); }
}