jQuery
En savoir plus
Adobe Flex & Flash
En savoir plus
ASP.NET
En savoir plus

Inscris-toi au e-camp "Héberge ton jeu Facebook sur Azure" de Microsoft vendredi 25 mai à 13h30 !
Le problème de ce sujet a été résolu
Offre d'emploi : Développeur .NET/Java en start-up innovante (H/F)
| Page 1 | |||||
| Auteur | Message | ||||
|---|---|---|---|---|---|
| 1 visiteur sur ce sujet (1 Anonyme) | |||||
| Page 1 | |||||
n!co69
|
# Posté le 31/01/2012 à 20:17:35 | ||||
![]()
|
Bonjours
Je voudrais savoir comment on met une donnée de type TimeSpan sur une base de données MySQL J'ai tenté d'utiliser un DATETIME ou un TIME mais sans succès Code : Autre
Je voudrais utiliser ça pour sauvegarder un temps de jeu sur un serveur. Merci nico69 Le zéro est le seul chiffre qui permet de compter jusqu'à 1. |
||||
| Publicité | # Posté le 31/01/2012 à 20:17:35 | ||||
|
|
|||||
n!co69
|
# Posté le 03/02/2012 à 11:30:08 | ||||
![]()
|
Je ne trouve toujours rien depuis ces 4 jours.
Et je ne vois pas quel type utiliser pour sauvegarder la valeur. http://dev.mysql.com/doc/refman/5.0/fr [...] me-types.html PS : je vient de voir que j'aurais du poster ce sujet dans "bases de données", si un modo veut bien le déplacer merci Le zéro est le seul chiffre qui permet de compter jusqu'à 1. |
||||
M4N!aC
|
# Posté le 03/02/2012 à 14:59:43 | ||||
Aperçu des compétences![]()
Ville : Montréal |
Salut,
Montre ta requête, j'ai l'impression que c'est toi qui a une erreur dedans, car un TIME est tout à fait approprié pour enregistrer un TimeSpan. |
||||
n!co69
|
# Posté le 04/02/2012 à 01:40:09 | ||||
![]()
|
Je lui envois une chaine contenant ceci :
Code : C#
Je définit totalTimePlayed comme ceci : Code : C#
Pour faire simple, le totalTimePlayed doit contenir l'heure d'arrivée du joueur si il aurais jouer toutes les heures d'un coup. Ensuite j'ai plus qu'a enlever la date actuelle pour avoir le temps joueur total. J’essaie d'utiliser cette méthode car elle n'utilise pas de puissance pour "compter" Après il se peut que je me trompe sur toute la ligne Aussi j'ai lu qu'un TIME ne peut contenir que 24H et je pence que je devrais stoker des temps de jeu beaucoup plus élevé Le zéro est le seul chiffre qui permet de compter jusqu'à 1. |
||||
M4N!aC
|
# Posté le 04/02/2012 à 06:09:35 | ||||
Aperçu des compétences![]()
Ville : Montréal |
Cette réponse a aidé l'auteur du sujetCode : C#
(ajout de ' si c'Est pas clair )Et puis bon... je comprend pas pourquoi tu envoie une date antérieure a un temps jouer... au lieu du temps jouer, directement :/, mais bon, pas mon problème ![]() Citation : n!co69 Aussi j'ai lu qu'un TIME ne peut contenir que 24H et je pence que je devrais stoker des temps de jeu beaucoup plus élevé Uh... le TIME MySQL ne contient pas que 24h... |
||||
n!co69
|
# Posté le 04/02/2012 à 11:02:35 | ||||
![]()
|
ça ne fonctionne pas même avec les '
Pourtant le format de la chaine est bonne d’après les docs ... Citation : http://dev.mysql.com/doc/refman/5.0/fr/time.html Vous pouvez aussi utiliser l'une des syntaxes alternatives suivantes : HH:MM:SS.fraction, HH:MM:SS, HH:MM, D HH:MM:SS, D HH:MM, D HH ou SS. Ici, D peut prendre des valeurs entre 0 et 33. Code : Erreur
Le truc c'est de sauvegarder le temps joué (par exemple 8h) lorsque le joueur se déconnecte. Lorsque il se reconnecte, on soustrais le temps joué précédemment a sa date de connexion. Lorsque il se redéconnecte on recommence dans l'autre sens : on enlève la date d'arrivé moins le temps joué (définit a la connexion) a la date actuelle pour avoir le temps joué total. En espérant avoir été plus clair
Édité
le 04/02/2012 à 11:03:32
par n!co69
Le zéro est le seul chiffre qui permet de compter jusqu'à 1. |
||||
M4N!aC
|
# Posté le 04/02/2012 à 21:18:48 | ||||
Aperçu des compétences![]()
Ville : Montréal |
T'as changer ton ToString() pour un ToString("HH:MM:SS") ? ou autre format, peu importe.
|
||||
n!co69
|
# Posté le 05/02/2012 à 16:56:50 | ||||
![]()
|
un TimeSpan.ToString() ne prend aucun paramètres
EDIT : J'ai réussi Le TIME n'accepte pas les fractions de secondes (même si c'est écrit qu'il les accepte dans la doc) Code : C#
Merci beaucoup Problème résolu
Édité
le 05/02/2012 à 17:06:00
par n!co69
Le zéro est le seul chiffre qui permet de compter jusqu'à 1. |
||||
Orwell
|
# Posté le 05/02/2012 à 22:10:57 | ||||
tahc nu sap tse'n icec![]()
|
Citation : M4N!aC
Tu envoie un DateTime dans ta requête. elle devrait donc être construite comme ceci : Code : C#
Sacrilège ! On ne construit jamais une requête SQL en concaténant des strings. n!co69 n'aurait pas eu de problème s'il avait utilisé correctement les paramètres de requête !
|
||||
M4N!aC
|
# Posté le 05/02/2012 à 23:07:14 | ||||
Aperçu des compétences![]()
Ville : Montréal |
Citation : Orwell
Citation : M4N!aC Tu envoie un DateTime dans ta requête. elle devrait donc être construite comme ceci : Code : C#
Sacrilège ! On ne construit jamais une requête SQL en concaténant des strings. n!co69 n'aurait pas eu de problème s'il avait utilisé correctement les paramètres de requête ! ![]() Si si, je sais Mais les mauvaises habitudes (aka norme de prog de ma compagnie faite par un analyste qui ne connais pas C# ...) sont restées et j'y pense pas rapidement
|
||||
n!co69
|
# Posté le 06/02/2012 à 21:17:05 | ||||
![]()
|
Ça devient un peut hard la ...
J'ai toujours utiliser mysql comme ceci et je n'ai jamais eu de problèmes (sauf pour ce timespan qui maintenant fonctionne bien) Ne pas concaténer des string pour une requête mysql est t'il très important ou c'est juste une "méthode" a respecter ? Le zéro est le seul chiffre qui permet de compter jusqu'à 1. |
||||
M4N!aC
|
# Posté le 06/02/2012 à 21:40:02 | ||||
Aperçu des compétences![]()
Ville : Montréal |
Citation : n!co69
Ça devient un peut hard la ... J'ai toujours utiliser mysql comme ceci et je n'ai jamais eu de problèmes (sauf pour ce timespan qui maintenant fonctionne bien) Ne pas concaténer des string pour une requête mysql est t'il très important ou c'est juste une "méthode" a respecter ? Faire des requêtes comme tu le fais est un énorme risque de sécurité, tout simplement. Et du travail de plus. Ça laisse la porte ouverte à du SQL Injection (entre-autres). Tu doit donc valider à la main toutes les variables, ce que fait déjà une requetes qui utilise les paramètres de requêtes. |
||||
n!co69
|
# Posté le 07/02/2012 à 20:07:58 | ||||
![]()
|
Je vient de comprendre les risques.
http://fr.wikipedia.org/wiki/Injection_SQL Mais je ne stock pas de données "importantes" sur mysql. De plus ces types de problèmes ne peuvent pas arriver car toutes les variables sont géré par le serveur. Merci pour le conseil, ça me servira si j'utilise mysql pour des éléments plus important
Le zéro est le seul chiffre qui permet de compter jusqu'à 1. |
||||
Orwell
|
# Posté le 08/02/2012 à 11:17:47 | ||||
tahc nu sap tse'n icec![]()
|
Autant prendre les bonnes habitudes tout de suite, et ça simplifiera même l'écriture et la maintenance de tes requêtes.
|
||||
Retour au forum "C# .NET & VB .NET" ou à la liste des forums
