Afficher le dernier enregistrement dans Datagridview
Romys
-
Modifié le 23 mai 2017 à 21:52
Whismeril
Messages postés19022Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention17 avril 2024
-
24 mai 2017 à 22:04
Bonjour à tous,
j'ai une application de sauvegarde de base de données. je rencontre un problème souhaite que vous m'aidiez.
Au fait, je ne dois concerver que la dernière sauvegarde. Comment ca fonctionne:
1-Au lancement, l'appli affiche dans un datagrid toutes les bases de données
2-on coche la BDD à sauvegarder et on choisit le repertoir de sauvegarde puis on enregiste.
3-sur l'ecran de validation, on valide. Un autre datagrid apparait avec toutes les bases de donnees suavegardées avec leur liens.
Mon probleme est qu'il affiche les unes apres les autres, sans ecraser d'où une liste de plus de 200 BDD deja.
Voilà quelque morceaux de codes
try
{
for (int i = 0; i < gridView1.RowCount; i++)
{
if (gridView1.GetDataRow(i)["COCHER"].ToString() == "O")
{
List<clsChemin_> ch = new List<clsChemin_>();
XmlSerializer serial_ch = new XmlSerializer(typeof(List<clsChemin_>));
using (FileStream fs_ch = new FileStream(Environment.CurrentDirectory + "\\chemin_.xml", FileMode.Open, FileAccess.Read))
{
ch = serial_ch.Deserialize(fs_ch) as List<clsChemin_>;
}
DataSet dt = new DataSet();
dt = clsSauvegardeManager.Instance.pvgChargerParametreSauvegarde_();
for (int K = 0; K < dt.Tables[0].Rows.Count; K++)//Afficher uniquement les derniers enregistrements de chaque BDD
{
string chem = ch[0].nomchemin.ToString();
this.vapBaseDeDonnee = gridView1.GetDataRow(i)["NAME"].ToString();
dt.Tables[0].Rows[K]["PS_NOMBASE"].ToString();
if (this.vapBaseDeDonnee == dt.Tables[0].Rows[K]["PS_NOMBASE"].ToString())
{
string vlpFichier = clsSauvegardeManager.Instance.pvgGenererFichierSauvegarde_verifi(this.vapBaseDeDonnee, dt.Tables[0].Rows[K]["PS_CHEMIN"].ToString());
if (vlpFichier != "")
{
clsSauvegardeManager.Instance.pvgSauvegarder(this.vapBaseDeDonnee, vlpFichier);
SAUVEGARDE.Tables[0].Rows.Add(SAUVEGARDE.Tables[0].Rows.Count, DateTime.Now, this.vapBaseDeDonnee, vlpFichier, "O");
clsSauvegardeManager.Instance.pvpChargerGrilleSauvegarde(SAUVEGARDE, gridView2);
clsSauvegardeManager.Instance.pvgEnregistrerDataSetSauvegarde(SAUVEGARDE);
}
}
}
}
}
}
public void pvgSauvegarder(string vppDataBase, string vppFichier)
{
if(vppFichier=="")
vppFichier = pvgGenererFichierSauvegarde(vppDataBase, _REPERTOIRESAUVEGARDE);
clsSauvegardeDAL.Instance.pvgSauvegarder(vppDataBase, vppFichier);
}
public void pvgSauvegarder(string vppDataBase , string vppFichier)
{
this.vapRequete = "BACKUP DATABASE @DATABASE TO DISK = @FICHIER WITH FORMAT;" ;
vapNomParametre = new string[] {"@DATABASE","@FICHIER"};
vapValeurParametre = new object[] {vppDataBase,vppFichier};
this.vapCritere = "";
SqlCommand vppSqlCmd = new SqlCommand(this.vapRequete, clsDonnee.ClasseDonnee.vogObjetConnexionLocal, clsDonnee.ClasseDonnee.vogObjetTransactionLocal);
clsDonnee.ClasseDonnee.pvgMiseAJourBaseDeDonnees(vppSqlCmd, vapNomParametre, vapValeurParametre);
}
public void pvgMiseAJourBaseDeDonnees(SqlCommand vppSqlCommand, string[] vppNomParametre, object[] vppValeurParametre)
{
try
{
if (vppNomParametre != null && vppValeurParametre != null)
for (int i = 0; i < vppNomParametre.Length; i++)
{
vppSqlCommand.Parameters.Add(new SqlParameter(vppNomParametre[i], vppValeurParametre[i]));
}
vppSqlCommand.ExecuteNonQuery();
vapObjetCommandeLocal = null;
}
catch (SqlException SQLEx)
{
vapObjetCommandeLocal = null;
throw SQLEx;
}
}
EDIT : Ajout des balises de code (la coloration syntaxique). Explications disponibles ici : ICI
Merci d'y penser dans tes prochains messages.
A voir également:
Afficher le dernier enregistrement dans Datagridview
Whismeril
Messages postés19022Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention17 avril 2024656 24 mai 2017 à 22:04
Bonsoir
dans les bouts de codes que tu postes il y a de nombreux objets qui sortent de nulle part, sans contexte pas simple de comprendre à quoi ils servent. A minima un commentaire serait le bienvenu.
D'autant que le seul commentaire existant est plutôt déroutant.
for (int K = 0; K < dt.Tables[0].Rows.Count; K++)//Afficher uniquement les derniers enregistrements de chaque BDD
si c'est seulement les derniers enregistrements pourquoi faire une boucle qui commence à 0 et pas à dt.Tables[0].Rows.Count - 5 par exemple?
L'idée du try / catch au départ c'est de faire en sorte que le programme ne plante pas suite à une exception, alors la refaire dans le catch est assez surprenant.