Hallo zusammen
Ich hab mal wieder ein Wald vor mir. Einerseits bekomme ich Datatyp: "timespan" anderseits solle es Object sein.
Ich hab eine DataTabel wo in der drittenSspalte Zeiten stehen:
z.B. 00:12:55
MessageBox.Show((dt_importe.Rows[j - l][2]).GetType().ToString());
MessageBox.Show((dt_berechnungen.Rows[k][2]).GetType().ToString());
Ich bekomme die Ausgabe "timespan"
Versuche ich nun:
MessageBox.Show(TimeSpan.Compare(dt_importe.Rows[j - l][2],dt_berechnungen.Rows[k][2]).ToString());
Passiert folgendes:
Fehlermeldung:
Kann nicht vom Typ Object in system.timespan kann nicht konvertiert werden.
Ich hab es mit verwandel in datetime via string versucht. Ich hab via string.format "HHmmss" versucht ein int zu machen.
Eigetlich mochte ich nur die beiden zeiten vergleichen und daraus eine schlaufe machen
// geht natürlich nicht
while( dt_importe.Rows[j - l][2] > dt_berechnungen.Rows[k][2]
{
//spass haben
}
Mir fehlt etwas der Ansatz, wie ich mit solchen formaten umgehe? Wie bekomme ich 2 Datentypen, die ich für mein while benutzen kann?
Hab auch schon überlegt ob ich ein string mache und irgendwie versuche die puntke rauszubekommen um dann wieder ein int zu machen. Kling aber nicht wirklich elegant.
Hallo speedytweety,
das Zellenelement auf welches du zugreifst ist vom Typ Object (DataRow.Item).
Dieses soll jedoch ein TimeSpan sein. Dadurch ist es auch kein Problem wenn du den Wert in einen TimeSpan castest:
TimeSpan ts1 = (TimeSpan)dt_importe.Rows[j - l][2];
TimeSpan ts2 = (TimeSpan)dt_berechnungen.Rows[k][2];
int i = TimeSpan.Compare(ts1,ts2);
Kann nicht vom Typ Object in system.timespan kann nicht konvertiert werden.
Bitte befolge bei Compilerfehlern immer [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen) .
Ansonsten hilft immer ein Debugger-Brakepoint vor der kritischen Stelle weiter, dann kannst du direkt sehen was für ein Typ die Variable ist.
Gruß
Michael