Guten Tag,
ich habe ein Dataset typisiert und über eine BindingSource eine ComboBox angebunden. Aus mir unerklärlichen Gründen, werden die Date aus der DataTable jetzt doppelt und dreifach angezeigt. Vielleicht könnt Ihr mir einfach nur ein paar Tipps geben, wonach ich da genau suchen muss.
ich habe bereits beide betreffende ComboBoxen inkl. BindingSource entfernt und wieder neu hinzugefügt (allerdings mit der seleben Namensgebung). Auch meine Codesuche hat mir jeweils imemr nur einmal das Element angezeigt und ich habe bereits den gesamten Code durchgeforstet ob ich eventuell die BindingSource doppelt lade oder die ComboBox mehrfach mit der BindingSource verknüpfe. Nichts.
Das Dataset lade ich aus dem übergebenen Form mit Me.Owner in ein Dataset auf der BuchungNeu Form (beide typisiert).
Hier mal ein Codeausschnitt aus der Form "BuchungNeu" welcher relevant sein dürfte (der gesamte war zu lang für den Beitrag):
Spoiler anzeigen
Ich bin Euch für alle hinweise, auch kritiken dankbar. Suche da schon seit gestern Nachtn ach der Ursache.
ich habe ein Dataset typisiert und über eine BindingSource eine ComboBox angebunden. Aus mir unerklärlichen Gründen, werden die Date aus der DataTable jetzt doppelt und dreifach angezeigt. Vielleicht könnt Ihr mir einfach nur ein paar Tipps geben, wonach ich da genau suchen muss.
ich habe bereits beide betreffende ComboBoxen inkl. BindingSource entfernt und wieder neu hinzugefügt (allerdings mit der seleben Namensgebung). Auch meine Codesuche hat mir jeweils imemr nur einmal das Element angezeigt und ich habe bereits den gesamten Code durchgeforstet ob ich eventuell die BindingSource doppelt lade oder die ComboBox mehrfach mit der BindingSource verknüpfe. Nichts.
Das Dataset lade ich aus dem übergebenen Form mit Me.Owner in ein Dataset auf der BuchungNeu Form (beide typisiert).
Hier mal ein Codeausschnitt aus der Form "BuchungNeu" welcher relevant sein dürfte (der gesamte war zu lang für den Beitrag):
VB.NET-Quellcode
- Public Class BuchungNeu
- Dim ScanDiag As WIA.CommonDialog
- Dim imageFileNameList As New List(Of String)
- Dim currentPage As Integer = 0
- Dim outputFileName As String
- Dim fs As FileStream
- Dim srcBmp As Bitmap
- Dim totalPages As Integer
- Dim EditMode As Boolean = False
- Dim EditRow As Integer = -1
- Dim Editdrv As KasseDataset.BuchungenRow
- Private Sub BuchungNeu_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
- Me.KasseDataset = DirectCast(Me.Owner, KasseMain).KasseDS
- If Not (EditMode) Then
- With Me.BelegnummerTB
- .Text = CStr(KasseDataset.Buchungen.Rows.Count + 1).PadLeft(5, CChar("0"))
- End With
- End If
- With Me.BuchungskontoBindingSource
- .DataSource = Me.KasseDataset.Buchungskonto
- End With
- With Me.GeldkontoBindingSource
- .DataSource = Me.KasseDataset.Geldkonto
- End With
- With Me.KostenstellenBindingSource
- .DataSource = Me.KasseDataset.Kostenstellen
- End With
- With Me.FinanzbereicheBindingSource
- .DataSource = Me.KasseDataset.Finanzbereiche
- End With
- With Me.BuchungsartBindingSource
- .DataSource = Me.KasseDataset.Buchungsart
- End With
- With Me.GeldkontoCB
- .SelectedIndex = -1
- End With
- With Me.BuchungsartCB
- .SelectedIndex = -1
- End With
- With Me.BuchungskontoCB
- .SelectedIndex = -1
- End With
- With Me.BuchungsartCB
- .SelectedIndex = -1
- End With
- AddHandler Me.BuchungsartCB.SelectedIndexChanged, AddressOf ComboBox_SelectedIndexChanged
- With Me.FinanzbereichCB
- .SelectedIndex = -1
- End With
- AddHandler Me.FinanzbereichCB.SelectedIndexChanged, AddressOf ComboBox_SelectedIndexChanged
- With Me.KostenstellenCB
- .SelectedIndex = -1
- End With
- With MwStCB
- .DataSource = My.Settings.MehrwertSteuer
- .SelectedIndex = -1
- End With
- If (Me.EditMode) Then
- InitEditMode_Row()
- End If
- End Sub
- Sub InitEditMode_Row()
- If (Me.EditMode) Then
- Editdrv = Me.KasseDataset.Buchungen.FindByBuchungenID(Me.EditRow)
- With Me.GeldkontoCB
- .SelectedValue = Editdrv.GeldkontoID
- End With
- With Me.BelegnummerTB
- .Text = Editdrv.Belegnummer
- End With
- With Me.BuchungskontoCB
- .SelectedValue = Editdrv.BuchungskontoID
- End With
- With Me.FinanzbereichCB
- .SelectedValue = Editdrv.BereichID
- End With
- With Me.BuchungsartCB
- .SelectedValue = Editdrv.BuchungsartID
- End With
- If (Editdrv.MwStSatz > CDec(0.0)) Then
- Me.CheckBox2.Checked = True
- Dim selID As Integer = 0
- With Me.MwStCB
- For Each Str As String In My.Settings.MehrwertSteuer
- If (CDbl(Str) = CDbl(Editdrv.MwStSatz * 100)) Then
- .SelectedIndex = selID
- End If
- selID += 1
- Next
- End With
- selID = Nothing
- End If
- With Me.BuchungstextTB
- .Text = Editdrv.Buchungstext
- End With
- Dim EditBuchungswert As String = CStr(Editdrv.Buchungswert)
- If (EditBuchungswert.Substring(0, 1) = "-") Then EditBuchungswert = EditBuchungswert.ToString.Substring(1)
- With Me.BuchungswertTB
- .Text = EditBuchungswert
- End With
- With Me.BuchungsdatumDP
- .Value = Editdrv.Buchungsdatum
- End With
- End If
- End Sub
- Private Sub ComboBox_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
- Select Case True
- Case sender Is Me.BuchungsartCB
- If (CType(sender, ComboBox).SelectedIndex <> -1) Then
- If (Me.FinanzbereichCB.SelectedIndex <> -1) Then
- With BuchungskontoBindingSource
- .Filter = "BuchungsartID=" & _
- CInt(Me.BuchungsartCB.SelectedValue) & _
- " AND BereichID=" & _
- CInt(Me.BuchungsartCB.SelectedValue)
- End With
- Else
- With BuchungskontoBindingSource
- .Filter = "BuchungsartID=" & _
- CInt(Me.BuchungsartCB.SelectedValue)
- End With
- End If
- If Not (EditMode) Then
- With Me.BuchungskontoCB
- .SelectedIndex = -1
- End With
- End If
- End If
- Case sender Is Me.FinanzbereichCB
- If (Me.BuchungsartCB.SelectedIndex <> -1) Then
- With Me.BuchungskontoBindingSource
- .Filter = "BuchungsartID=" & _
- CInt(Me.BuchungsartCB.SelectedValue) & _
- " AND BereichID=" & _
- CInt(CType(sender, ComboBox).SelectedValue)
- End With
- Else
- With Me.BuchungskontoBindingSource
- .Filter = "BereichID=" & _
- CInt(CType(sender, ComboBox).SelectedValue)
- End With
- End If
- End Select
- End Sub
- Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
- If (Me.BuchungswertTB.Text.Trim.Length < 1) Then
- Me.MessageLbl.Text = "Buchungswert enthält keinen Eintrag!"
- Return
- End If
- If (Decimal.TryParse(Me.BuchungswertTB.Text, CDec(0.0)) = False) Then
- Me.MessageLbl.Text = "Der eingegebene Betrag ist nicht gültig!"
- Return
- End If
- If (Me.BuchungstextTB.Text.Trim.Length < 1) Then
- Me.MessageLbl.Text = "Buchungstext enthält keinen Eintrag!"
- Return
- End If
- If (Me.BelegnummerTB.Text.Trim.Length < 1) Then
- Me.MessageLbl.Text = "Belegnummer enthält keinen Eintrag!"
- Return
- End If
- If (BuchungsartCB.SelectedIndex = -1) Then
- Me.MessageLbl.Text = "Es wurde keine Buchungsart angegeben!"
- Return
- End If
- If (CheckBox2.Checked And MwStCB.SelectedIndex = -1) Then
- Me.MessageLbl.Text = "Es wurde kein gültiger Mehrwertsteuersatz angegeben!"
- Return
- End If
- If (GeldkontoCB.SelectedIndex = -1) Then
- Me.MessageLbl.Text = "Es wurd kein Geldkonto angegeben!"
- Return
- End If
- If (Me.BuchungskontoCB.SelectedIndex = -1) Then
- Me.MessageLbl.Text = "Es wurde kein Buchungskonto angegeben!"
- Return
- End If
- If (Me.FinanzbereichCB.SelectedIndex = -1) Then
- Me.MessageLbl.Text = "Es wurdde kein Geschäftsbereich angegeben!"
- Return
- End If
- If (Me.CheckBox1.Checked And Me.KostenstellenCB.SelectedIndex = -1) Then
- Me.MessageLbl.Text = "Es wurde keine Kostenstelle angegeben!"
- Return
- End If
- If (Me.BuchungsdatumDP.Value.Year <> Date.Now.Year) Then
- Me.MessageLbl.Text = "Es dürfen nur Buchungen innerhalb des laufenden Kalenderjahres vorgenommen werden!"
- Return
- End If
- If (Me.EditMode) Then
- With Me.Editdrv
- .BeginEdit()
- .Buchungsdatum = Me.BuchungsdatumDP.Value
- Dim dr As DataRow = KasseDataset.Buchungsart.FindByBuchungsartID(CInt(Me.BuchungsartCB.SelectedValue))
- If (dr!BuchungsartName.ToString = "Einlage") Then
- .Buchungswert = CDec(Me.BuchungswertTB.Text)
- Else
- .Buchungswert = CDec(String.Format("-{0}", Me.BuchungswertTB.Text))
- End If
- .Buchungstext = Me.BuchungstextTB.Text
- .Belegnummer = Me.BelegnummerTB.Text
- .BuchungsartID = CInt(Me.BuchungsartCB.SelectedValue)
- .GeldkontoID = CInt(Me.GeldkontoCB.SelectedValue)
- .BuchungskontoID = CInt(Me.BuchungskontoCB.SelectedValue)
- .BereichID = CInt(Me.FinanzbereichCB.SelectedValue)
- If (Me.CheckBox1.Checked) Then
- .KostenstellenID = CInt(Me.KostenstellenCB.SelectedValue)
- End If
- If (Me.CheckBox2.Checked) Then
- .MwStSatz = Decimal.Parse(CStr((CDec(Me.MwStCB.SelectedValue) / 100)))
- Else
- .MwStSatz = CDec(0.0)
- End If
- If (Me.BelegScanImgFileTB.Text.Trim.Length > 0) Then
- .BelegFile = Me.BelegScanImgFileTB.Text
- End If
- .EndEdit()
- End With
- Else
- Dim BuchungRowNew As KasseDataset.BuchungenRow = KasseDataset.Buchungen.NewBuchungenRow
- Try
- With BuchungRowNew
- .Buchungsdatum = Me.BuchungsdatumDP.Value
- Dim dr As DataRow = KasseDataset.Buchungsart.FindByBuchungsartID(CInt(Me.BuchungsartCB.SelectedValue))
- If (dr!BuchungsartName.ToString = "Einlage") Then
- .Buchungswert = CDec(Me.BuchungswertTB.Text)
- Else
- .Buchungswert = CDec(String.Format("-{0}", Me.BuchungswertTB.Text))
- End If
- .Buchungstext = Me.BuchungstextTB.Text
- .Belegnummer = Me.BelegnummerTB.Text
- .BuchungsartID = CInt(Me.BuchungsartCB.SelectedValue)
- .GeldkontoID = CInt(Me.GeldkontoCB.SelectedValue)
- .BuchungskontoID = CInt(Me.BuchungskontoCB.SelectedValue)
- .BereichID = CInt(Me.FinanzbereichCB.SelectedValue)
- If (Me.CheckBox1.Checked) Then
- .KostenstellenID = CInt(Me.KostenstellenCB.SelectedValue)
- Else
- .KostenstellenID = 0
- End If
- If (Me.CheckBox2.Checked) Then
- .MwStSatz = Decimal.Parse(CStr((CDec(Me.MwStCB.SelectedValue) / 100)))
- Else
- .MwStSatz = CDec(0.0)
- End If
- If (Me.BelegScanImgFileTB.Text.Trim.Length > 0) Then
- .BelegFile = Me.BelegScanImgFileTB.Text
- End If
- End With
- KasseDataset.Buchungen.AddBuchungenRow(BuchungRowNew)
- Catch ex As Exception
- FiBuHelper.LoggingError(ex)
- MsgBox(ex.InnerException.ToString)
- MsgBox(ex.ToString)
- MsgBox(ex.StackTrace)
- Return
- End Try
- End If
- If (srcBmp IsNot Nothing) Then
- srcBmp.Dispose()
- End If
- Me.Close()
- End Sub
Ich bin Euch für alle hinweise, auch kritiken dankbar. Suche da schon seit gestern Nachtn ach der Ursache.