Salut Cyril,
Yes , you're right,
Merci bcp. Pour le lien du site : tres interessant super .
C'est bon mon probleme est resolu
//call fct1 :
MessageBox.Show("Le nb.d'heures travaillees / jour:" + Get_Sum_Time_By_Day(1, Convert.ToDateTime("06/07/2008 00:00:00")).ToLongTimeString() ); //"06/07/2008")
//Call fct2:
GroupBy_Day(1);
//_______________________________________La fct (1) ____________________________
publicDateTime Get_Sum_Time_By_Day(int id_pers, DateTime date_jour)
{
DateTime Resultat = newDateTime(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,0,0,0);
chaine = WebConfigurationManager.ConnectionStrings["Gestion_RH_HopitalConnectionString"].ToString();
SqlConnection ConS = newSqlConnection(chaine);
ConS.Open();
String myselect_diff = "Select difference_heure_SE from Pointage where id_personne= " + id_pers + " and date_jour = '" + date_jour.ToShortDateString() +"' ";
SqlCommand com_Diff = newSqlCommand(myselect_diff, ConS);
SqlDataReader RD_Diff = com_Diff.ExecuteReader();
if (RD_Diff.HasRows)
{
while (RD_Diff.Read())
{
//if (!RD_Diff.IsDBNull(0))
DateTime dt = RD_Diff.GetDateTime(0); //0 est le champ de difference SE
Resultat=Resultat.AddHours(dt.Hour);
Resultat = Resultat.AddMinutes(dt.Minute);
Resultat = Resultat.AddSeconds(dt.Second);
}
}
ConS.Close();
return Resultat; //But de cette fct est de retourner la somme des heures S et E (par jour par personne)
} //Fin fct Get_Sum
//__________________________________fct (2) _________________________________ Group By Day
publicvoid GroupBy_Day(int id_pers)
{
chaine = WebConfigurationManager.ConnectionStrings["Gestion_RH_HopitalConnectionString"].ToString();
SqlConnection ConGroupBy = newSqlConnection(chaine);
ConGroupBy.Open();
//Recuperer les Jours
String myselect_Gp = "Select [id_personne],[date_jour],[Le_jour] from [Gestion_RH_Hopital].[dbo].[Pointage] where [id_personne] = "+id_pers+" Group by [date_jour],[id_personne],[Le_jour]";
SqlCommand com_Gp = newSqlCommand(myselect_Gp, ConGroupBy);
SqlDataReader RD_Gp = com_Gp.ExecuteReader();
int nom;
String jour;
if (RD_Gp.HasRows)
{
while (RD_Gp.Read())
{
nom = Convert.ToInt32(RD_Gp.GetInt32(0));
jour = RD_Gp.GetString(1);
DateTime dtt = Get_Sum_Time_By_Day(nom, Convert.ToDateTime(jour + " 00:00:00") );
MessageBox.Show("dtt == " + dtt.ToLongTimeString() );
MessageBox.Show("Dans le Jour : " + jour + "Res. :"+ Get_Sum_Time_By_Day(nom, Convert.ToDateTime(jour+" 00:00:00")).ToLongTimeString());
//fct. pr. une requete => affichage ds une GridView:
//Affichage de trois colonne (1 : ip_personne
// 2 : date_jour
// 3 : Le nb d'heures travaillees )
//???????
/*
SqlDataAdapter sd = new SqlDataAdapter("select * from Pointage", ConGroupBy); //???????
DataSet ds = new DataSet();
sd.Fill(ds,"Pointage");
DataGrid1.DataSource = ds.Tables["Pointage"].DefaultView;
DataGrid1.DataBind();
*/
}//Fin While
} //Fin if
} //Fin fct(2)
Now reste a trouver comment affecter les 2 valeurs affichées dans le MessageBox de la fct2 as :
( MessageBox.Show("Dans le Jour : " + jour + "Res. :"+ Get_Sum_Time_By_Day(nom, Convert.ToDateTime(jour+" 00:00:00")).ToLongTimeString());
)
dans un tableau de 3 colonnes (id_personne, date_jour et nb d'heure_job_day) ou utiliser une datagrid manuellement ou . ?
help pls.