Ich habe userTransact Tabelle, die die (Login und Logout) Zeit und Datum enthält, jetzt habe ich diese Codes für die Dauer Berechnung verwendet, aber das Problem ist, dass es Subtract Daten auch mich ungültig geben Datum wie folgt:
Login 2016.12.22 08: 28: 27,540
Abmelde 2016.12.22 08: 28: 32,947
Dauer 1900-01-01 00: 00: 05.407
wie dieses Problem beheben ?
Die Codes für diese Berechnung sind in der Formclosing Ereignis als:Wie bekomme ich die Dauer von Subtrahieren zwei mal
SqlCommand cmd3 = new SqlCommand("insert into empTransLogin(empLogTransNo,empId,logTimeIn,logTimeOut,duration) VALUES (@logTrans,@id,@login,@logout,@duration)", cn);
cmd3.Parameters.AddWithValue("@logTrans", x);
cmd3.Parameters.AddWithValue("@id", deleteById);
cmd3.Parameters.AddWithValue("@login", loginDateTime);
cmd3.Parameters.AddWithValue("@logout", DateTime.Now);
TimeSpan duration = DateTime.Now - loginDateTime;
cmd3.Parameters.AddWithValue("@duration", duration);
cmd3.ExecuteNonQuery();
SqlCommand cmd2 = new SqlCommand("delete from empLogin where empId=" + deleteById + "", cn);
cmd2.ExecuteNonQuery();
Application.Exit();
Wie sollte "Dauer" aussehen? Wenn Sie sich abmelden, erhalten Sie 'TimeSpan' von diesem können Sie die Dauer in Sekunden, Tics oder was Sie wollen –
Bitte verwenden Sie nicht' AddWithValue'. Es wird wahrscheinlich Probleme verursachen: [Best Practices - Ausführen von SQL-Anweisungen] (http://stackoverflow.com/documentation/.net/3589/ado-net/14261/best-practices-executing-sql-statements). –
@ M.Wiśnicki die Dauer sollte um das volle Datum dann die Vollzeit sein, hier ist die Uhrzeit korrekt aber das Datum ist nicht .. es sollte das gleiche Datum sein, wenn der Benutzer sich am selben Tag an- und abgemeldet hat. –