begin process at 2012 05 28 07:39:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Base de données

 > 

SQL Server

 > 

Transformer TimeSpan(ASP.Net C#) a Timestamp(SQL Server) ???????


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Transformer TimeSpan(ASP.Net C#) a Timestamp(SQL Server) ???????

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ée 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 [C#][ASP.NET] Comment binder sur la propriété d'une propriété ? [ par cedkat ] Bonjour, Voila mon problème : J'utilise un ObjectDataSource comme source de données dans une FormView. Le type de l'objet est Personne qui a une pro optgroup en ASP.NET avec c# [ par aylandar2000 ] bonjour j'aimerai avoir l'équivalent de ce bout de code en ASP.NET avec C# mais j'arrive pas à le traduire... quelqu'un peut me donner un coup de mai timeout/session [ par verbeyst ] Bonjour, Je reprends un travail fait par un collègue. Il s'agit d'une appli asp.net, utilisant des sessions. Voici le scénario qui pose problème: L


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales