Du bist nicht angemeldet.

flox1984

Registrierter Benutzer

  • »flox1984« ist weiblich
  • »flox1984« ist der Autor dieses Themas

Beiträge: 10

Dabei seit: 19. April 2009

Wohnort: Rendsburg

  • Private Nachricht senden

1

Freitag, 3. September 2010, 18:15

Datetime in Datatable

Hallo zusammen,

Ich möchte einige Geburtstage in einer DataTable nach Datum sortieren. Ich habe gedacht dazu währe eine Spalte von Typ DateTime ganz praktisch.

Leider enthält DateTime auch die Uhrzeit, so dass ich jetzt lauter Geburtstage mit Uhrzeit habe.

Gibt es eine bessere Möglichkeit oder kann ich das Format an dieser Stelle noch irgendwie beeinflussen?

Visual Basic Quellcode

1
.Columns.Add("Geburtsdatum", GetType(DateTime))

Wünsche euch einen schönen Abend
Die Flo... :love:

* Topic verschoben *
hab ich nicht.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »der_Kurt« (3. September 2010, 20:30)


singu

Lib Dev

  • »singu« ist männlich

Beiträge: 5 853

Dabei seit: 6. Oktober 2008

Hilfreich-Bewertungen: 43

  • Private Nachricht senden

2

Freitag, 3. September 2010, 19:42

Du kannst statt DateTime auch Date verwenden. Und dann kannst du mit ToShortDateString das Datum ausgeben.

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim today As Date = Nothing

        today = Date.Now

        MessageBox.Show(today.ToShortDateString)

    End Sub
End Class
FTPLib 2.1.0.0 - Einfacher Zugriff auf FTP-Server ** TextEffectsLib - Schöne Effekte für TextBox und Label ** ExtendedListView


xtts02

Vergesslicher Halbwissender

Beiträge: 1 115

Hilfreich-Bewertungen: 159

  • Private Nachricht senden

3

Freitag, 3. September 2010, 19:52

Es hängt davon ab, mit welchem Control das Datum angezeigt wird.
In DataGridView kannst Du das Format in DefaultCellStyle.Format angeben.
Beispiel:

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        Dim dt As New Data.DataTable
        With dt.Columns
            .Add("Name", GetType(String))
            .Add("Vorname", GetType(String))
            .Add("Geburtstag", GetType(Date))
        End With

        With dt.Rows
            .Add("Mustermann", "Gustav", New Date(1922, 12, 23))
            .Add("Musterfrau", "Virgin", New Date(1955, 1, 22))
            .Add("Musterkind", "Kevin", New Date(2000, 5, 3))
        End With

        With DataGridView1
            .DataSource = dt
            .Columns(2).DefaultCellStyle.Format = "dd.MM.yyyy"
        End With

flox1984

Registrierter Benutzer

  • »flox1984« ist weiblich
  • »flox1984« ist der Autor dieses Themas

Beiträge: 10

Dabei seit: 19. April 2009

Wohnort: Rendsburg

  • Private Nachricht senden

4

Samstag, 4. September 2010, 20:47

Hallo Jungs,

danke für die Hilfe.

@singu - Dein Beispiel funktioniert auch mit DateTime. Ich glaub da gibt es keinen großen Unterschied oder?

Leider habe ich in diesem Fall kein Datagridview sondern nur eine Tatatable die ich in eine HTML-Tabelle umbauen lasse.

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
PrivateSub EmailsSenden(ByVal Empfaenger AsString, ByRef dtZusatz AsDataTable) 

Msg.Body = Msg.Body & TabelleStart & vbCrLf 
Zeile = "<TR>" 
ForEach S AsDataColumnIn dtZusatz.Columns ' Die Spaltenüberschriften 
Zeile = Zeile & "<TH>" & S.ColumnName & "</TH>" 
Next 
Zeile = Zeile & "</TR>" & vbCrLf 
Msg.Body = Msg.Body & Zeile 
ForEach Z AsDataRowIn dtZusatz.Rows ' Für jede Zeile ... 
Zeile = "<TR>" 
For I AsInteger = 0 To dtZusatz.Columns.Count - 1 ' ... die einzelnen Felder 
Zeile = Zeile & ZelleStart & Z.Item(I).ToString & ZelleEnde 
Next 
Zeile = Zeile & "</TR>" & vbCrLf 
Msg.Body = Msg.Body & Zeile 
Next 
Msg.Body = Msg.Body & TabelleEnde 
Try 
PostausgangsServer.Send(Msg) ' Nachricht verschicken 
Catch ex AsException 
MsgBox("Die Email konnte nicht verschickt werden." & vbLf & ex.Message, MsgBoxStyle.Exclamation) 
SendenWorker1.CancelAsync() 
Exit Sub 
EndTry 
EndSub


Ich muss mal drüber schlafen. Vielleicht fällt mir da noch was ein...

Schönen Abend.
hab ich nicht.

jvbsl

Noob

  • »jvbsl« ist männlich

Beiträge: 7 206

Dabei seit: 7. April 2010

Hilfreich-Bewertungen: 397

  • Private Nachricht senden

5

Samstag, 4. September 2010, 20:53

die ToString Methode hat eine Überladung, ähnlich von String.Format, dort könntest du wahrscheinlich das Format angeben, also ToString("dd.mm.YY") oder so ähnlich ;)
Ich wollte auch mal ne total überflüssige Signatur:
---Leer---

singu

Lib Dev

  • »singu« ist männlich

Beiträge: 5 853

Dabei seit: 6. Oktober 2008

Hilfreich-Bewertungen: 43

  • Private Nachricht senden

6

Samstag, 4. September 2010, 22:25

@singu - Dein Beispiel funktioniert auch mit DateTime. Ich glaub da gibt es keinen großen Unterschied oder?

Deshalb hab ich ja geschrieben das man auch Date verwenden kann. Nach meiner Meinung gibt es keinen Unterschied zwischen Date und DateTime.

die ToString Methode hat eine Überladung, ähnlich von String.Format, dort könntest du wahrscheinlich das Format angeben, also ToString("dd.mm.YY") oder so ähnlich ;)

Man kann auch ToShortDateString verwenden, da muss man nichts mehr angeben.
FTPLib 2.1.0.0 - Einfacher Zugriff auf FTP-Server ** TextEffectsLib - Schöne Effekte für TextBox und Label ** ExtendedListView


jvbsl

Noob

  • »jvbsl« ist männlich

Beiträge: 7 206

Dabei seit: 7. April 2010

Hilfreich-Bewertungen: 397

  • Private Nachricht senden

7

Samstag, 4. September 2010, 22:26

Zitat

Man kann auch ToShortDateString verwenden, da muss man nichts mehr angeben.
Kann man aber nur machen, wenn man den Item castet, sonst wird diese Funktion wohl kaum vorhanden sein...ToString jedoch passt sich entsprechend an und nimmt die Methode der richtigen Klasse und nicht diese, von welcher geerbt wurde...
Ich wollte auch mal ne total überflüssige Signatur:
---Leer---

Beiträge: 4 421

Hilfreich-Bewertungen: 384

  • Private Nachricht senden

8

Montag, 6. September 2010, 21:56

MFG ALEX

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »SystemUnknow« (6. September 2010, 22:12)


flox1984

Registrierter Benutzer

  • »flox1984« ist weiblich
  • »flox1984« ist der Autor dieses Themas

Beiträge: 10

Dabei seit: 19. April 2009

Wohnort: Rendsburg

  • Private Nachricht senden

9

Montag, 6. September 2010, 22:02

mit .tostring(Format) erhalte ich eine InvalidCastExeption: Ungültige Konvertierung von der Zeichenfolge dd.MM.yy in Typ Integer.

Visual Basic Quellcode

1
2
Dim Format As String = "dd.MM.yyyy" 
Zeile = Zeile & ZelleStart & Z.Item(I).ToString(Format) & ZelleEnde


Das verstehe ich nicht ganz, weil der folgende Code funktioniert:

Visual Basic Quellcode

1
2
Dim today As DateTime = dateTime.now 
MessageBox.Show(today.ToString("dd.MM.yyyy"))


Ich habs jetzt erstmal so gelöst:

Visual Basic Quellcode

1
2
3
Dim temp As String = Z.Item(I).ToString
temp = temp.Substring(1, 10)
Zeile = Zeile & ZelleStart & temp & ZelleEnde


VIelen Dank für eure Hilfe... :love: :love: :love:
hab ich nicht.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »flox1984« (8. September 2010, 20:16)


singu

Lib Dev

  • »singu« ist männlich

Beiträge: 5 853

Dabei seit: 6. Oktober 2008

Hilfreich-Bewertungen: 43

  • Private Nachricht senden

10

Donnerstag, 9. September 2010, 08:45

Ich würde das Datum vorher mit Date.TryParse ins Date-Format konvertieren und dann würde ich das Datum nehmen, was in der Variable drin steht, was du als 2. Parameter übergeben hast
FTPLib 2.1.0.0 - Einfacher Zugriff auf FTP-Server ** TextEffectsLib - Schöne Effekte für TextBox und Label ** ExtendedListView


Social Bookmarks