Ich habe ein Datagridview an eine Tabelle eines typisierten Datasets gebunden.
Leider bekomme ich die Daten immer so geliefert (1x monatlich) das 2 Datumsfelder im Format yyyymmdd dargestellt werden. Das Feld kann aber auch Nullwerte beinhalten.
Ich habe zum einen versucht, dies als berechnete Spalte im Dataset einzubinden, mit folgender Formel.
IIF(Datum is null,'',substring(Datum,6,2) +'.'+substring(Datum,4,2)+'.'+substring(Datum,0,4))
Dort bekomme ich den Fehler "Das Argument Substring befindet sich außerhalb des gültigen Bereichs. Parametername index"
Ein anderer Versuch bestand darin 2 Spalten im Datagridview anzufügen und per Code berechnen zu lassen. Wobei die Berechnung lt. Kontrolle im Debugger funktionierte, aber die Zellen im Datagridview leider leer blieben.
Wie löse ich das Problem am effektivsten ?
Leider bekomme ich die Daten immer so geliefert (1x monatlich) das 2 Datumsfelder im Format yyyymmdd dargestellt werden. Das Feld kann aber auch Nullwerte beinhalten.
Ich habe zum einen versucht, dies als berechnete Spalte im Dataset einzubinden, mit folgender Formel.
IIF(Datum is null,'',substring(Datum,6,2) +'.'+substring(Datum,4,2)+'.'+substring(Datum,0,4))
Dort bekomme ich den Fehler "Das Argument Substring befindet sich außerhalb des gültigen Bereichs. Parametername index"
Ein anderer Versuch bestand darin 2 Spalten im Datagridview anzufügen und per Code berechnen zu lassen. Wobei die Berechnung lt. Kontrolle im Debugger funktionierte, aber die Zellen im Datagridview leider leer blieben.
VB.NET-Quellcode
-
- Public Property dtrowsRL100() As dsInfrastruktur.DB100Row()
- Get
- Return _dtrowsRL100
- End Get
- Set(ByVal value As dsInfrastruktur.DB100Row())
- _dtrowsRL100 = value
- If _dtrowsRL100.Count > 1 Then
- Me.dgvRL100.Visible = True
- Me.lblweitereGueltigkeiten.Visible = True
- Me.dgvRL100.DataSource = _dtrowsRL100
- Dim row As DataGridViewRow
- With Me.dgvRL100
- For Each row In .Rows
- Dim strDatumvon As String = row.Cells("Datum").Value.ToString
- If strDatumvon > String.Empty Then
- row.Cells(Datumvon.Index).Value = String.Concat(strDatumvon.Substring(6, 2), ".", strDatumvon.Substring(4, 2), ".", strDatumvon.Substring(0, 4))
- End If
- Dim strDatumbis As String = row.Cells("bis").Value.ToString
- If strDatumbis > String.Empty Then
- row.Cells(Datumbis.Index).Value = String.Concat(strDatumbis.Substring(6, 2), ".", strDatumbis.Substring(4, 2), ".", strDatumbis.Substring(0, 4))
- End If
- Next
- Me.dgvRL100.Update()
- End With
- Else
- Me.dgvRL100.Visible = False
- Me.lblweitereGueltigkeiten.Visible = False
- End If
- End Set
- End Property
Wie löse ich das Problem am effektivsten ?