Autor Beitrag
Rassi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: Mi 24.09.08 13:58 
Hallo.

Folgendes Problem.
Ich möchte in eine MySql-Tabellenspalte, die den Datentyp "TIME" bzw. "DATE" hat, mit einem C# Programm etwas schreiben.

Ich gehe so vor, dass ich in C# zuerst ein "INSERT"-Komando erstelle (com= myconn.createCommand(); ......).

Bei der Erstellung der Übergabeparameter benutze ich ein "TIME" bzw. "DATE"
Datentyp (Zeit= com.Parameters.Add("?zeit", MySqlDbType.TIME);....).

Nun muss ich, um das Kommando auszuführen die Parameter beschreiben und den Befehl ausführen
(
Zeit.Value= Variable_fuer_Zeit;
com.ExecuteNonQuery();
)

Meine Frage nun, welchen Datentyp muss die Variable "Variable_fuer_Zeit" haben, wenn die Sql-Tabelle den Datentyp "TIME" bzw. "DATE" erwartet?

Ich habe bei meinen Versuchen immer die Fehlermeldung bekommen, dass nur ein TimeSpan-Typ übergeben werden kann.
Wenn das so ist, wie bekomme ich eine Zeitangabe bzw. Datumsangabe in diesen Typ gewandelt?


Gruß
Rasmus
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 24.09.08 15:25 
Mit welchen Datentypen arbeitest du denn intern in deinem Programm (DateTime, string, ...)?

Um aus einem DateTime-Object ein TimeSpan-Object zu erstellen (d.h. nur den Time-Anteil):
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
DateTime dt = DateTime.Now; // oder new DateTime(...)
TimeSpan ts = new TimeSpan(dt.Hour, dt.Minute, dt.Second);

// und dann an den Datenbank-Parameter übergeben
Zeit.Value = ts;

Und für "DATE" einfach direkt DateTime verwenden (falls es als String vorliegt, evtl. erst DateTime.Parse() bzw DateTime.ParseExact() aufrufen).
Rassi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: Do 25.09.08 13:11 
Hallo.

Vielen Dank für die Hilfe, so gehts.

Gruß
Rasmus
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 25.09.08 15:52 
Oder einfach DateTime.TimeOfDay, wenn dir auch die Millisekunden wichtig sind ;) .

_________________
>λ=