Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Transformer TimeSpan(ASP.Net C#) a Timestamp(SQL Server) ??????? [ Base de données / SQL Server ] (kiraqi)

jeudi 10 juillet 2008 à 15:57:56 | Transformer TimeSpan(ASP.Net C#) a Timestamp(SQL Server) ???????

kiraqi

Salut,
J'ai une variable de type «TimeSpan » dans une page ASP.Net (code C#)  ou je stocke la différence entre l'heure de sortie et l'heure d'entrée comme :

  DateTime dt ;

DateTime dt_E;

 ...recuperation de dt et dt_E

//dt => 13/04/08 19:00:01

//dt_E => 13/04/08 17:00:00

 TimeSpan ddddddd = dt.TimeOfDay - dt_E.TimeOfDay;

//resultat de ddddddd est : 02:00:00 // signifie 2h travaillée par jour

 Comment stocker la valeur 02 :00 :00 ds la BD ?

Car  en voulant faire un Update d'une Table pour insérer cette variable (TimeSpan) dans un champ de type « TimeStamp » ça ne marche pas :

Est ce qu'il existe un autre type dans SQL Server 2005 qui ressemble au type « TimeSpan » de Visual Studio 2005 ?

Comment je pourrai faire pour insérer des valeurs TimeSpan ds la BD ???????

 Et pouvoir faire la somme des heures, min et sec travaillées par jour ???????



jeudi 10 juillet 2008 à 18:31:12 | Re : Transformer TimeSpan(ASP.Net C#) a Timestamp(SQL Server) ???????

jesusonline

Membre Club Administrateur CodeS-SourceS
bonjour,

comment execute ton sql ?

si tu utilises une commande paramètre, alors en mettant le type du paramètre à timestamp cela devrait fonctionner.
Sinon, indique nous le message d'erreur, car "marche pas" c'est pas très explicite.


Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant

vendredi 11 juillet 2008 à 11:00:32 | Re : Transformer TimeSpan(ASP.Net C#) a Timestamp(SQL Server) ???????

kiraqi

Merci pour ta réponse mais ca ne marche tjs pas
//-_-_-_-_-_
. alors en mettant le type du paramètre à timestamp cela devrait fonctionner.
mais je ne trouve pas dans VS après un Convert le type timestamp de SQLServer

rr.Subtract(); ? //j'ai meme essaye la fonction Subtract mais cot works ?

Convert .ToDateTime. ?
//-_-_-_-_-_
Actuellement  Je fais :

TimeSpan ddddddd = dt.TimeOfDay - dt_E.TimeOfDay;

 
//Apres j'essaye de convertir la variable ddddddd en String as :

 String diff_String = "";

      diff_String = Convert.ToString(ddddddd);

      MessageBox.Show("try again"+diff_String); //ok affichage de 02:00:00

//et puis j essaye de faire :

 chaine = WebConfigurationManager.ConnectionStrings["Gestion_RH_HopitalConnectionString"].ToString();

        SqlConnection Con_maj = newSqlConnection(chaine);

        Con_maj.Open();

        String myQuery_maj = "Update Pointage set difference_heure_S_et_E = " + diff_String + " "; //where id_pointage= "+les_id_pointage[i]+" ";

        SqlCommand com_maj = newSqlCommand(myQuery_maj, Con_maj);

   try

   {   

            com_maj.ExecuteNonQuery();

             MessageBox.Show("\n (maj) ok ");

    }catch (Exception ee) { ee.ToString(); } //Syntaxe incorrecte vers ':'.

  Avant j'ai rendu le type du champ : difference_heure_S_et_E varchar(10) (j'ai enlevé TimeStamp) è et ça ne marche tjs pas mon Update ???????

Il entre dans try et ds catch il m'affiche :  Syntaxe incorrecte vers ' :' .

Si on a un champ de type varchar(10) ds l'SQL Server est qu'on peut mettre dedans une variable string comme 02 :00 :00  (Pourquoi il n'accepte pas les deux points ?)

 

 


vendredi 11 juillet 2008 à 11:02:54 | Re : Transformer TimeSpan(ASP.Net C#) a Timestamp(SQL Server) ???????

jesusonline

Membre Club Administrateur CodeS-SourceS
Si tu relis mon message, je parle de requête paramétré ...
Ce que tu fais c'est plus de la bidouille que du vrai code :-)


Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant

vendredi 11 juillet 2008 à 11:25:38 | Re : Transformer TimeSpan(ASP.Net C#) a Timestamp(SQL Server) ???????

kiraqi

 Salut,

Mon but et de faire un programme qui calculer le nombre d'heures travaillées par chaque salarié par jour.

Et pour cela j'ai calculé la différence entre heure de sortie et celle d'entrée ; le résultat je le stocke dans une variable TimeSpan ;

J'essaye ensuite de stocker cette différence de temps (travaillé) dans la BD mais je ne sais pas vraiment quel type de champ je dois choisir pour réussir l'Update.

Peut être que si tu m'aide à trouver une solution pour mon problème j'effacerai mon bad code comme tu dis (mais c'est juste des tests) ...


vendredi 11 juillet 2008 à 12:53:41 | Re : Transformer TimeSpan(ASP.Net C#) a Timestamp(SQL Server) ???????

jesusonline

Membre Club Administrateur CodeS-SourceS
Bonjour,

je t'ai donné une piste avec les requetes paramétrées, à toi d'exploiter cette piste, n'est-ce pas le but d'un forum ?

http://www.google.com/search?hl=fr&rls=com.microsoft%3Aen-US&q=requete+param%C3%A9tr%C3%A9e+C%23+sql&lr
=


Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant

dimanche 13 juillet 2008 à 22:18:59 | Re : Transformer TimeSpan(ASP.Net C#) a Timestamp(SQL Server) ???????

coq

Administrateur CodeS-SourceS
Salut,

Le type timestamp de SQL Server n'est pas du tout prévu pour stocker une durée : [ Lien ]
Dans ton cas ça serait plutôt datetime ou même une valeur numérique.


/*
coq
MVP Visual C#
CoqBlog
*/

mardi 15 juillet 2008 à 16:18:32 | Re : Transformer TimeSpan(ASP.Net C#) a Timestamp(SQL Server) ???????

kiraqi

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.



mardi 15 juillet 2008 à 16:30:17 | Re : Transformer TimeSpan(ASP.Net C#) a Timestamp(SQL Server) ???????

kiraqi

Salut ,

Merci pour le lien de TimeStamp , ok :
TimeStamp de SQL Server represente les nbs binaires ...(pas de Datetime or Time )
So, j'ai rendu mon champ difference_entre_heure_sotrie_entree un champ Datetime
et ca facilite bcp la tache en employant les fcts specifiques de Datetime (as . toTimeofDay ...)
J'ai finalement utilisé dateTime pour stocker la durée et ca marche tres bien merci

Regards.




Cette discussion est classé dans : net, asp, type, dt, timespan


Répondre à ce message

Sujets en rapport avec ce message

En ASP.net, les datagrid et autres outils du genre sont ils inévitables ? [ par BigJim ] La question vient du fait que je code à la main la plupart du temps, même si j'utilise Dreamweaver pour générer le code HTML "standard".L'écriture man ASP.Net... jusqu'où ?????? [ par BigJim ] La question vient du fait que je code à la main la plupart du temps, même si j'utilise Dreamweaver pour générer le code HTML "standard".L'écriture man CFM vers ASP.net [ par Tamahome ] bonjour,est-ce que quelqu'un pourrait me filer un site ou un tuto qui explique comment transformer/reproduire/convertir du coldFusion en ASP.net svp ? ASP.Net content-type [ par SharpMao ] Hello,Voici mon problème : j'ai une page aspx qui crée un content-type svg. En règle générale, pas de problème. Mais si une exception survient, il ne input type="hidden" en asp.net ? [ par Thanos_the_yopper ] Bonjour, j'aurais voulu savoir comment générer un champs en asp.net, pour que je puisse y avoir accés avec le code behind. J'immagine qu'il faut cr type 'jobs' asp.net [ par gyzmo222 ] J'aimerais vous demander votre avis sur un warning apparu, il y a peu, dans mon projet vs2005 (ASP.NET c#).Warning    1    The type 'jobs' in 'c:\WIND gridview C# asp.net [ par lefevre00 ] j'ai un problème du type :Le controle de type gridview doit être placé dans une balise form avec runat="server". Mon problème c'est que mon gridview e Ouvrir un site distant ASP.net [ par hkayne ] Bonjour, Je travaille actuellement sur un site web en asp.net. Comme je travaille en equipe sur le meme site, on veut developper dans le réseau local Deploiement ASP.net 2 et SQl Server 2000 [ par hkayne ] Bonjour,J'ai crée un site web ASP.net 2. Lors du développement tout marche bien, mais une fois l'application deployée sur le serveur, elle n'arrive pa menu asp.net marche pas ss Opera [ par Fildomen ] Bonjour, Voila j'ai voulu adopter le menu asp.net pour mon site mais, sans rien modifier de plus, j'ai trouvé qu'il est incompatible avec Opera ! je p


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.