Linq - Group Join - Synatax Probleme

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 160 Antworten in diesem Thema. Der letzte Beitrag () ist von StGo.

    @StGo
    Das ist eine Exception vom Designercode, der ist nicht die Ursache deines Problems.
    Schaue jetzt in die Aufrufe-Liste und mache beim unmittelbar vorhergehenden Aufruf, der anklickbar ist und nicht von einem Designercode abstammt, einen DoppelClick darauf.
    Bei der neu erscheinenden Codezeile setzt du gleich einmal einen Haltepunkt, denn diese Codezeile verursacht deinen Fehler.
    Im Lokal-Fenster kannst du dann die Zustände untersuchen...
    @StGo
    Also ich kann dein Projekt nicht anschauen, weil ich nur VS2010 habe.
    Du zeigst uns einen Designercode, wo eine Exception geworfen wird, wo aber zu 99,9%-er Sicherheit die Ursache vom vorherigen Benutzercode entstammt.
    Wenn die BS.Current Nothing ist, dann kannst du mit BS.Count > 0 diesen Umstand testen und aus der Prozedur vorzeitig aussteigen oder du testest explizit mit

    VB.NET-Quellcode

    1. If BS.Current Is Nothing Then '... Ausstieg

    Was spricht den da dagegen?
    Morgen,

    Was spricht den da dagegen?


    prinzipielle gar nichts. Wenn ich die Abfrage einbaue bekomme ich einen Fehler im Designer. Ich hablte das auch nicht für unlogisch. Über dem Fehler gibt es nicht wirklich Code (zumindest der von mir ist). Der Fehler tritt auf, wenn auf die Bindingsource zugegriffen wird. Zu dem Zugriff steht dort aber nichts drin. Warum .Current is Nothing nicht funktioniert ist eine gute Frage.

    Das ist das einzige was vor dem Fehler ausgeführt wird:

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. 'Zentriert starten
    3. Dim Bildschirm As Screen = Screen.PrimaryScreen
    4. Location = New Point(Bildschirm.Bounds.Left + (Bildschirm.Bounds.Width - Width) \ 2, Bildschirm.Bounds.Top)
    5. 'Reiter verstecken
    6. 'TabControl1.Alignment = TabAlignment.Bottom
    7. TabControl1.SizeMode = TabSizeMode.Fixed
    8. TabControl1.ItemSize = New Size(0, 1)
    9. TabControl1.Appearance = TabAppearance.Buttons
    10. TabControl1.ResumeLayout()
    11. 'TabControl2.Alignment = TabAlignment.Bottom
    12. TabControl2.SizeMode = TabSizeMode.Fixed
    13. TabControl2.ItemSize = New Size(0, 1)
    14. TabControl2.Appearance = TabAppearance.Buttons
    15. TabControl2.ResumeLayout()
    16. 'Daten generieren
    17. 'datenGenerieren()
    18. End Sub


    Gruß
    Welche Abfrage? Du hast nicht nach "BS.Current is Nothing" gefragt, sondern nach .Count>1 oder?

    An welcher Stelle fragst du überhaupt ab, wo kommt plötzlich Form_Load her?


    Ich bin ja froh das ich Hilfe bekomme aber manchmal frage ich mich was das soll?

    Um es kurz zu machen. Ja es gibt ausser dem Event noch weiteren Code im Projekt. Und der Form Load Code kommt daher, dass die These im Raum stand das der Fehler im vorherigen Code lag! Darum der Code Form load.

    Aber falls die Projektdaten nicht reichen hier nochmal der complette Code:

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.IO
    3. Public Class frmMasterDetail
    4. Private _Datafile As New FileInfo("Dataset_Stammdaten.xml")
    5. Private Sub MenuStrip1_MenuClicked(ByVal Sender As Object, ByVal e As EventArgs) Handles DatenGenerierenToolStripMenuItem.Click, SaveToXMLToolStripMenuItem.Click, LadenAusXMLToolStripMenuItem.Click
    6. Select Case True
    7. Case Sender Is DatenGenerierenToolStripMenuItem
    8. datenGenerieren()
    9. Case Sender Is SaveToXMLToolStripMenuItem
    10. speicherToXml()
    11. Case Sender Is LadenAusXMLToolStripMenuItem
    12. ladenVonXml()
    13. End Select
    14. End Sub
    15. Private Sub datenGenerieren()
    16. 'Daten generieren
    17. Dim AnzahlZuGenerierendenDatensaetze As Integer = 19
    18. Dim tmp As Integer
    19. Dim tmpXls As Integer
    20. Dim tmpPdf As Integer
    21. Dim tmpDateityp As String
    22. Dim Cell As String
    23. Dim Bereich As String
    24. Dim rnd As New Random
    25. DsStammdaten.Clear()
    26. 'Tabelle Stammdaten generieren
    27. For i = 0 To AnzahlZuGenerierendenDatensaetze
    28. tmp = rnd.Next(1, 3)
    29. Select Case tmp
    30. Case 1
    31. tmpDateityp = "xls"
    32. Case 2
    33. tmpDateityp = "pdf"
    34. Case Else
    35. tmpDateityp = "error"
    36. End Select
    37. DsStammdaten.Stammdaten.AddStammdatenRow(i, "C:\Eingabepfad\hier liegt mein Dokument" & i, "C:\Ausgabepfad\hier wird es abgelegt" & i, tmpDateityp)
    38. Next
    39. 'Tabelle XLS generieren
    40. For j = 0 To AnzahlZuGenerierendenDatensaetze
    41. If DsStammdaten.Stammdaten.Rows(j).Item(4).ToString = "xls" Then
    42. tmpXls = rnd.Next(1, 5)
    43. Select Case tmpXls
    44. Case 1
    45. Cell = "A"
    46. Case 2
    47. Cell = "B"
    48. Case 3
    49. Cell = "C"
    50. Case 4
    51. Cell = "D"
    52. Case Else
    53. Cell = "error"
    54. End Select
    55. Dim tmpIdStammdaten = DsStammdaten.Stammdaten(j)
    56. DsStammdaten.XLS.AddXLSRow(tmpIdStammdaten, CStr(j), Cell & j)
    57. End If
    58. Next
    59. 'Tabelle PDF generieren
    60. For k = 0 To AnzahlZuGenerierendenDatensaetze
    61. If DsStammdaten.Stammdaten.Rows(k).Item(4).ToString = "pdf" Then
    62. tmpPdf = rnd.Next(1, 4)
    63. Select Case tmpPdf
    64. Case 1
    65. Bereich = "X"
    66. Case 2
    67. Bereich = "Y"
    68. Case 3
    69. Bereich = "Z"
    70. Case Else
    71. Bereich = "error"
    72. End Select
    73. Dim tmpIdStammdaten = DsStammdaten.Stammdaten(k)
    74. DsStammdaten.PDF.AddPDFRow(tmpIdStammdaten, "Der Text wird im Bereich: " & Bereich & k & " gesucht.")
    75. End If
    76. Next
    77. End Sub
    78. Private Sub speicherToXml()
    79. Me.Validate()
    80. DsStammdaten.WriteXml(_Datafile.FullName)
    81. MessageBox.Show("Daten erfolgreich gespeichert (siehe Projektverzeichnis\bin\Debug)")
    82. End Sub
    83. Private Sub ladenVonXml()
    84. DsStammdaten.Clear()
    85. If _Datafile.Exists Then
    86. DsStammdaten.ReadXml(_Datafile.FullName)
    87. MessageBox.Show("Daten erfolgreich geladen")
    88. Else
    89. MessageBox.Show("Keine Daten vorhanden")
    90. End If
    91. End Sub
    92. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    93. 'Zentriert starten
    94. Dim Bildschirm As Screen = Screen.PrimaryScreen
    95. Location = New Point(Bildschirm.Bounds.Left + (Bildschirm.Bounds.Width - Width) \ 2, Bildschirm.Bounds.Top)
    96. 'Reiter verstecken
    97. 'TabControl1.Alignment = TabAlignment.Bottom
    98. TabControl1.SizeMode = TabSizeMode.Fixed
    99. TabControl1.ItemSize = New Size(0, 1)
    100. TabControl1.Appearance = TabAppearance.Buttons
    101. TabControl1.ResumeLayout()
    102. 'TabControl2.Alignment = TabAlignment.Bottom
    103. TabControl2.SizeMode = TabSizeMode.Fixed
    104. TabControl2.ItemSize = New Size(0, 1)
    105. TabControl2.Appearance = TabAppearance.Buttons
    106. TabControl2.ResumeLayout()
    107. 'Daten generieren
    108. 'datenGenerieren()
    109. End Sub
    110. Private Sub StammdatenBindingSource_CurrentChanged(sender As Object, e As EventArgs) Handles StammdatenBindingSource.CurrentChanged
    111. 'If StammdatenBindingSource.Current Is Nothing Then
    112. ' Return
    113. 'Else
    114. 'If StammdatenBindingSource.Current <> 0 Then
    115. Dim rwStamm = DirectCast(DirectCast(StammdatenBindingSource.Current, DataRowView).Row, dsStammdaten.StammdatenRow)
    116. If rwStamm.RowState <> DataRowState.Detached Then
    117. Select Case rwStamm.Dateityp
    118. Case "xls"
    119. TabControl1.SelectedIndex = 1
    120. TabControl2.SelectedIndex = 1
    121. Case "pdf"
    122. TabControl1.SelectedIndex = 2
    123. TabControl2.SelectedIndex = 2
    124. Case Else
    125. TabControl1.SelectedIndex = 0
    126. TabControl2.SelectedIndex = 0
    127. End Select
    128. End If
    129. End Sub
    130. Private Sub cmdXlsLoeschen_Click(sender As Object, e As EventArgs) Handles cmdXlsLoeschen.Click
    131. End Sub
    132. Private Sub cmdPdfLoeschen_Click(sender As Object, e As EventArgs) Handles cmdPdfLoeschen.Click
    133. End Sub
    134. Private Sub cmdXlsSpeichern_Click(sender As Object, e As EventArgs) Handles cmdXlsSpeichern.Click
    135. End Sub
    136. Private Sub cmdPdfSpeichern_Click(sender As Object, e As EventArgs) Handles cmdPdfSpeichern.Click
    137. End Sub
    138. End Class

    StGo schrieb:

    aber manchmal frage ich mich was das soll?


    Ich weiß auch nicht, warum du von Anfang an so aggressiv auf mich reagierst ;( Wirst du schon wissen, warum... Aber dann frage mich das nicht.

    Du hast immer noch nicht geschrieben, welcher Code bei dir welchen Fehler auslöst. Der Code, der auskommentiert war, war syntaktisch falsch, also nehme ich an, du hattest einen anderen...

    Aber dann frage mich das nicht


    Ich denke nicht das ich dich direkt angesprochen habe. Und ausprobiert habe jede Idee die irgendwer gepostet hat. Wo mein Fehler liegt und was ihn auslöst habe ich in Post 104, 107, 110, 112 beschrieben. Der Fehler hänge davon ab welche If-Abrage auskommentiert ist. Wie in passenden Posts beschrieben.

    @EDR
    hängt an
    Dateien