Hallo zusammen
Ich habe folgenes Problem:
Ich habe eine Form mit einem Datagridview.
Außerdem eine MySql-Tabelle. In der MySql-Tabelle gibt es die Spalte "Time"
Dort ist in ein Timestamp konventiertes Datum enthalten.
DLL:
Spoiler anzeigen
Beispielsweise: 01.06.2011 15:08:58 -> 1306940938
Soweit ist alles okay.
Jetzt füge ich die gesamte Tabelle in mein Datagridview ein.
Formatierungen:
Spoiler anzeigen
Jetzt wird in dem Datagridview zum einen die ID sowie die Log-Nachricht angezeigt, aber zum anderen auch die Zeit. Allerdings in der Timestamp-Konventierung.
Jetzt möchte ich Inhalt der "Time"-Spalte nicht direkt in das Datagridview einfügen, sondern erst den Wert in das normale Datum zurück konventieren.
Dabei brauche ich Hilfe, weil ich nicht weiß, wie ich da ran gehen soll. Geht es überhaupt?
Gruß, Dennis
Ich habe folgenes Problem:
Ich habe eine Form mit einem Datagridview.
Außerdem eine MySql-Tabelle. In der MySql-Tabelle gibt es die Spalte "Time"
Dort ist in ein Timestamp konventiertes Datum enthalten.
DLL:
VB.NET-Quellcode
- Public Class timestamp
- Function GetTimestamp(ByVal FromDateTime As DateTime) As Integer
- Dim Startdate As DateTime = #1/1/1970#
- Dim Spanne As TimeSpan
- Spanne = FromDateTime.Subtract(Startdate)
- Return CType(Math.Abs(Spanne.TotalSeconds()), Integer)
- End Function
- Function GetDateFromTimestamp(ByVal unixTimestamp As Integer) As DateTime
- Dim Span As TimeSpan
- Dim Startdate As Date = #1/1/1970#
- If unixTimestamp = 0 Then Return Startdate
- Span = New TimeSpan(0, 0, unixTimestamp)
- Return Startdate.Add(Span)
- End Function
- End Class
Beispielsweise: 01.06.2011 15:08:58 -> 1306940938
Soweit ist alles okay.
Jetzt füge ich die gesamte Tabelle in mein Datagridview ein.
VB.NET-Quellcode
- Dim dgv As DataGridView = DataGridView1
- Dim conn As MySqlConnection
- conn = New MySqlConnection
- conn.ConnectionString = "server=" & Mainform.server & "; user id=" & Mainform.user & "; password=" & Mainform.password & "; database=" & Mainform.database
- conn.Open()
- Dim myAdapter As New MySqlDataAdapter
- Dim SQLAbfrage As String = "SELECT * FROM tierag_log"
- Dim myCommand As New MySqlCommand
- myCommand.Connection = conn
- myCommand.CommandText = SQLAbfrage
- myAdapter.SelectCommand = myCommand
- Dim myData As MySqlDataReader
- myData = myCommand.ExecuteReader()
- ds = New DataSet()
- conn.Close()
- Try
- conn.Open()
- myAdapter.Fill(ds, "Logs")
- conn.Close()
- dgv.DataSource = ds.Tables("Logs")
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- formatdatagridcomputer(DataGridView1)
- DataGridView1.RowHeadersVisible = False
Formatierungen:
VB.NET-Quellcode
- Private Sub formatdatagridcomputer(ByVal dgv2 As DataGridView)
- 'Bestimmt die Hintergrundfarben des Datagridviews
- dgv2.RowsDefaultCellStyle.BackColor = Color.Silver
- dgv2.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGray
- 'Entfernt die Spalten
- dgv2.Columns.Remove("id")
- dgv2.Columns.Remove("time")
- dgv2.Columns.Remove("log")
- 'Erstellt neue Spalten im Datagridview
- Dim tbc1 As New DataGridViewTextBoxColumn
- Dim tbc2 As New DataGridViewTextBoxColumn
- Dim tbc3 As New DataGridViewTextBoxColumn
- 'Gibt die Quelle an
- tbc1.DataPropertyName = "id"
- tbc2.DataPropertyName = "time"
- tbc3.DataPropertyName = "log"
- 'Bestimmt den Text, der über die Spalte zu sehen ist.
- tbc1.HeaderText = "ID"
- tbc2.HeaderText = "Zeit"
- tbc3.HeaderText = "Nachricht"
- 'Bestimmt die Größe der Spalte, die angezeigt wird.
- tbc1.Width = 55
- tbc2.Width = 150
- tbc3.Width = 705
- 'Reihenfolge im Datagridview
- tbc1.DisplayIndex = 1
- tbc2.DisplayIndex = 2
- tbc3.DisplayIndex = 3
- 'Fügt die Spalten hinzu.
- dgv2.Columns.Add(tbc1)
- dgv2.Columns.Add(tbc2)
- dgv2.Columns.Add(tbc3)
- End Sub
Jetzt wird in dem Datagridview zum einen die ID sowie die Log-Nachricht angezeigt, aber zum anderen auch die Zeit. Allerdings in der Timestamp-Konventierung.
Jetzt möchte ich Inhalt der "Time"-Spalte nicht direkt in das Datagridview einfügen, sondern erst den Wert in das normale Datum zurück konventieren.
Dabei brauche ich Hilfe, weil ich nicht weiß, wie ich da ran gehen soll. Geht es überhaupt?
Gruß, Dennis
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „starscream14“ ()