Je développe un système de surveillance d'assiduité et j'ai besoin de calculer la différence de temps entre OutTime et InTime. Le problème est que je ne peux pas le faire parce que la valeur InTime est dans la base de données, je n'arrive pas à le paramétrer. Ma requête fonctionne avec le mode de requête d'Access mais pas avec C#. Voici mon code pour le bouton de temporisation.Temps de calcul C# Utilisation de la requête
private void savetimeout()
{
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = @" UPDATE TimeinTimeout
SET OutTime = @1 AND HoursWorked = ROUND(([OutTime]-[InTime])*24,2)
WHERE EmployeeID = @2 AND InDate = @3";
command.Parameters.Clear();
command.Parameters.AddWithValue("@1", DateTime.Now.ToLongTimeString());
command.Parameters.AddWithValue("@2", textBox1.Text);
command.Parameters.AddWithValue("@3", DateTime.Now.ToShortDateString());
command.ExecuteNonQuery();
MessageBox.Show("Data Saved!");
this.Hide();
Form1 Mm = new Form1();
Mm.ShowDialog();
}
Les champs OutTime, InTime et InDate de type DateTIme? Indiquez le schéma de la table de base de données et indiquez-nous les valeurs présentes dans la table au moment où vous exécutez cette requête. – Steve
Oui, tous sont la date et l'heure, alors quelle est la prochaine étape? –
OutTime doit être défini sur DateTime.Now, alors que, HoursWorked peut être défini avec la différence entre OutTime - InTime – Steve