Datagridview Datatable Booleanwert lässt Error werfen

  • VB.NET
  • .NET (FX) 4.0

Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von razzzer530i.

    Datagridview Datatable Booleanwert lässt Error werfen

    Moin Leute.

    Habe ein Datatable:

    VB.NET-Quellcode

    1. With dt.Columns
    2. .Add("Dateiname", GetType(System.String))
    3. .Add("Beleg Nr", GetType(System.String))
    4. .Add("Rechnungs Nr", GetType(System.String))
    5. .Add("Rechnungs Datum", GetType(System.String))
    6. .Add("Endbetrag Brutto", GetType(System.String))
    7. .Add("Absender", GetType(System.String))
    8. .Add("Lieferant", GetType(System.String))
    9. .Add("Lieferschein Nr", GetType(System.String))
    10. .Add("Leistungs Datum", GetType(System.String))
    11. .Add("Intern", GetType(System.Boolean))
    12. .Add("Absm", GetType(System.String))
    13. .Add("ffn", GetType(System.String))
    14. End With


    Ich fülle die diese Datatable automatisch mit Daten die ich aus Rechnungen filtere.

    Jetzt zeige ich das ganze in einem DGW an.
    Parallel läuft ein Protokoll und ein Autosave mit das alle Änderungen festhält.


    Nachdem das passiert ist will ich die Daten in einer dat Datei speichern und das DGW wieder cleanen.
    Klappt alles perfekt. Solange ich den Booleanwert in spalte8(index9) nicht ändere. mache ich das, gibt es einen Error:
    Spoiler anzeigen

    Informationen über das Aufrufen von JIT-Debuggen
    anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

    ************** Ausnahmetext **************
    System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    bei System.Windows.Forms.DataGridViewRow.GetErrorText(Int32 rowIndex)
    bei System.Windows.Forms.DataGridViewRow.Paint(Graphics graphics, Rectangle clipBounds, Rectangle rowBounds, Int32 rowIndex, DataGridViewElementStates rowState, Boolean isFirstDisplayedRow, Boolean isLastVisibleRow)
    bei System.Windows.Forms.DataGridView.PaintRows(Graphics g, Rectangle boundingRect, Rectangle clipRect, Boolean singleHorizontalBorderAdded)
    bei System.Windows.Forms.DataGridView.PaintGrid(Graphics g, Rectangle gridBounds, Rectangle clipRect, Boolean singleVerticalBorderAdded, Boolean singleHorizontalBorderAdded)
    bei System.Windows.Forms.DataGridView.OnPaint(PaintEventArgs e)
    bei System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)
    bei System.Windows.Forms.Control.WmPaint(Message& m)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.DataGridView.WndProc(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Geladene Assemblys **************
    mscorlib
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.6.1590.0 built by: NETFXREL2.
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
    ----------------------------------------
    Rechnungsanalyse
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///C:/Users/Anwender/Desktop/Visual Studio Projekte/Rechnungsverarbeitung06122016/20.12.16 to add stuff/Rechnungsanalyse/bin/Release/Rechnungsanalyse.exe.
    ----------------------------------------
    Microsoft.VisualBasic
    Assembly-Version: 10.0.0.0.
    Win32-Version: 14.6.1590.0 built by: NETFXREL2.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
    ----------------------------------------
    System
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.6.1590.0 built by: NETFXREL2.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
    ----------------------------------------
    System.Core
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.6.1590.0 built by: NETFXREL2.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
    ----------------------------------------
    System.Windows.Forms
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.6.1590.0 built by: NETFXREL2.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
    ----------------------------------------
    System.Drawing
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.6.1590.0 built by: NETFXREL2.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
    ----------------------------------------
    System.Runtime.Remoting
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.6.1590.0 built by: NETFXREL2.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
    ----------------------------------------
    System.Data
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.6.1636.0 built by: NETFXREL3STAGE.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll.
    ----------------------------------------
    System.Xml
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.6.1590.0 built by: NETFXREL2.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
    ----------------------------------------
    System.Configuration
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.6.1590.0 built by: NETFXREL2.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
    ----------------------------------------
    System.Windows.Forms.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.6.1055.0 built by: NETFXREL2.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
    ----------------------------------------
    AxInterop.AcroPDFLib
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///C:/Users/Anwender/Desktop/Visual Studio Projekte/Rechnungsverarbeitung06122016/20.12.16 to add stuff/Rechnungsanalyse/bin/Release/AxInterop.AcroPDFLib.DLL.
    ----------------------------------------
    mscorlib.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.6.1055.0 built by: NETFXREL2.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
    ----------------------------------------
    Interop.AcroPDFLib
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///C:/Users/Anwender/Desktop/Visual Studio Projekte/Rechnungsverarbeitung06122016/20.12.16 to add stuff/Rechnungsanalyse/bin/Release/Interop.AcroPDFLib.DLL.
    ----------------------------------------
    Microsoft.VisualBasic.PowerPacks
    Assembly-Version: 9.0.0.0.
    Win32-Version: 3.0.30214.0.
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic.PowerPacks/9.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.PowerPacks.dll.
    ----------------------------------------
    Accessibility
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.6.1590.0 built by: NETFXREL2.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll.
    ----------------------------------------
    System.Numerics
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.6.1590.0 built by: NETFXREL2.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll.
    ----------------------------------------
    itextsharp
    Assembly-Version: 5.5.10.0.
    Win32-Version: 5.5.10.0.
    CodeBase: file:///C:/Users/Anwender/Desktop/Visual Studio Projekte/Rechnungsverarbeitung06122016/20.12.16 to add stuff/Rechnungsanalyse/bin/Release/itextsharp.DLL.
    ----------------------------------------

    ************** JIT-Debuggen **************
    Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
    Konfigurationsdatei der Anwendung oder des Computers
    (machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
    Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

    Zum Beispiel:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
    Ausnahmen an den JIT-Debugger gesendet, der auf dem
    Computer registriert ist, und nicht in diesem Dialogfeld behandelt.



    Irgendwo in diesem Quellcode ist der Fehler. Entschuldigt die Unordnung aber das Programm ist sehr schnell gewachsen und das ist wirklich nur ein kleiner Ausschnitt. Ich hoffe, jemand kann kombinieren und mir auch andere unnötige Zeilen oder Codes ansagen:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Try
    2. Label1.BackColor = Color.Transparent
    3. Label1.Text = "Wird gespeichert"
    4. Dim tsfn As Integer = DataGridView1.Rows.Count
    5. ProgressBar1.Maximum = tsfn
    6. ProgressBar1.Value = 0
    7. Dim tsfi As Integer = 0
    8. Dim i As Integer = 0
    9. For Each zeile In dt.Rows
    10. Dim fs As New FileStream(pfadpruef & "\" & DataGridView1.Rows(i).Cells(0).FormattedValue.ToString & ".dat", FileMode.Create)
    11. Dim sw As New StreamWriter(fs)
    12. Dim x As Integer = 0
    13. For Each spalte In dt.Columns
    14. 'If x = dt.Columns.Count - 1 Then // wenn pfad nicht gespeichert werden soll
    15. ' Exit For
    16. 'End If
    17. sw.WriteLine(DataGridView1.Rows(i).Cells(x).FormattedValue.ToString)
    18. x = x + 1
    19. Next
    20. i = i + 1
    21. sw.Close()
    22. tsfi = tsfi + 1
    23. Next
    24. If Not Directory.Exists("pfad") Then
    25. Directory.CreateDirectory("\\pfad")
    26. End If
    27. If Not Directory.Exists("pfad") Then
    28. Directory.CreateDirectory("pfad")
    29. End If
    30. For Each f As FileInfo In New DirectoryInfo("pfad").GetFiles("*.pdf", SearchOption.TopDirectoryOnly)
    31. If Not File.Exists("pfad" & f.Name) Then
    32. f.MoveTo("pfad" & f.Name)
    33. End If
    34. Try
    35. File.Copy("pfad\NLZO.csv", "pfad\NLZO.csv")
    36. Catch
    37. End Try
    38. Next
    39. For Each pd As FileInfo In New DirectoryInfo("pfad").GetFiles("*.pdf", SearchOption.TopDirectoryOnly)
    40. Dim stempel As Boolean = True
    41. For Each f As FileInfo In New DirectoryInfo("pfad").GetFiles(pd.Name.Replace(pd.Extension, ".dat"), SearchOption.TopDirectoryOnly)
    42. Dim lfn As String = ReadLine(f.FullName, 7).Trim() ' Liefnr as dat datei
    43. Dim lfnns As String() = My.Computer.FileSystem.ReadAllText(My.Settings.pfadnostamp, Encoding.Default) _
    44. .Split(Environment.NewLine)
    45. Dim ic As Integer = 0
    46. For Each lfnnsp In lfnns
    47. lfnnsp = lfnnsp.Replace(Environment.NewLine, "")
    48. lfnnsp = lfnnsp.Trim()
    49. If lfn = lfnnsp Then
    50. ic = ic + 1
    51. End If
    52. Next
    53. If ic > 0 Then stempel = False
    54. Next
    55. '//Nicht gelistet
    56. If stempel = True Then
    57. Using stamper As New PdfStamper(New PdfReader(pd.FullName), File.Create("pfad" & pd.Name))
    58. Dim tf As New TextField(stamper.Writer, New iTextSharp.text.Rectangle(250, 800, 290, 825), "ID")
    59. Dim tfes As New TextField(stamper.Writer, New iTextSharp.text.Rectangle(200, 640, 280, 660), "EG")
    60. tfes.TextColor = New BaseColor(255, 0, 0)
    61. tfes.BackgroundColor = New BaseColor(214, 214, 214)
    62. Dim tfed As New TextField(stamper.Writer, New iTextSharp.text.Rectangle(200, 620, 280, 640), "DA")
    63. tfed.TextColor = New BaseColor(255, 0, 0)
    64. tfed.BackgroundColor = New BaseColor(214, 214, 214)
    65. stamper.AddAnnotation(tf.GetTextField(), 1)
    66. stamper.AddAnnotation(tfes.GetTextField(), 1)
    67. stamper.AddAnnotation(tfed.GetTextField(), 1)
    68. Dim tx As AcroFields = stamper.AcroFields
    69. tx.SetField("ID", pd.Name.Replace(pd.Extension, ""))
    70. Dim txe As AcroFields = stamper.AcroFields
    71. txe.SetField("EG", Today.ToShortDateString)
    72. Dim txd As AcroFields = stamper.AcroFields
    73. txd.SetField("DA", " " & Today.ToShortDateString & " ")
    74. stamper.Close()
    75. End Using
    76. Dim newfile As String = "pfad" & pd.Name
    77. Dim pdfreader As New PdfReader("pfad" & pd.Name)
    78. Dim pdfstamper As New PdfStamper(pdfreader, New FileStream(newfile, FileMode.Create))
    79. Dim pdfformatfields As AcroFields = pdfstamper.AcroFields
    80. pdfformatfields.SetField("ID", pd.Name.Replace(pd.Extension, ""))
    81. pdfformatfields.SetField("EG", "Eingegangen:")
    82. pdfformatfields.SetField("DA", Today.ToShortDateString)
    83. pdfstamper.Close()
    84. pdfreader.Close()
    85. pdfreader.Dispose()
    86. Else
    87. Using stamper As New PdfStamper(New PdfReader(pd.FullName), File.Create("pfad" & pd.Name))
    88. Dim tf As New TextField(stamper.Writer, New iTextSharp.text.Rectangle(250, 800, 290, 825), "ID")
    89. stamper.AddAnnotation(tf.GetTextField(), 1)
    90. Dim tx As AcroFields = stamper.AcroFields
    91. tx.SetField("ID", pd.Name.Replace(pd.Extension, ""))
    92. stamper.Close()
    93. End Using
    94. Dim newfile As String = "pfad" & pd.Name
    95. Dim pdfreader As New PdfReader("pfad" & pd.Name)
    96. Dim pdfstamper As New PdfStamper(pdfreader, New FileStream(newfile, FileMode.Create))
    97. Dim pdfformatfields As AcroFields = pdfstamper.AcroFields
    98. pdfformatfields.SetField("ID", pd.Name.Replace(pd.Extension, ""))
    99. pdfstamper.Close()
    100. pdfreader.Close()
    101. pdfreader.Dispose()
    102. End If
    103. Next
    104. For Each tdpdf As FileInfo In New DirectoryInfo("pfad").GetFiles("*.pdf", SearchOption.TopDirectoryOnly)
    105. tdpdf.Delete()
    106. Next
    107. If Directory.Exists("pfad") Then
    108. Directory.Delete("pfad")
    109. End If
    110. For Each fa As FileInfo In New DirectoryInfo(pfadpruef).GetFiles("*.IO", SearchOption.TopDirectoryOnly)
    111. If File.Exists(fa.FullName.Replace(fa.Extension, ".dat")) Then
    112. fa.Delete()
    113. End If
    114. Next
    115. dt.Rows.Clear()
    116. Catch
    117. End Try



    PS: Habe alle Pfade aus Sicherheitsgründen durch "pfad" ersetzt. Nicht wundern.

    Dankbar für jede Hilfe &


    Frohes Neues euch allen!
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~
    @razzzer530i Was wird in dem DGV gemalt (Ownerdraw)?
    Da ist eine Null-Referenz.
    Haltepunkt rein, identifizieren, beheben, feddich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hi @razzzer530i,

    hab deinen Code mal grob überflogen. Leider schwer lesbar ;(

    ​1. Tausche alles aus was mit "My.Computer" anfängt -> veraltet
    ​2. Strukturiere deinen Code in einzelne Methoden/Funktionen -> erhöht Lesbar- und Wartbarkeit des Codes enorm
    3. Benenne deine Controls und Variablen sauber (z.B. tsfn, tsfi -> suboptimal) -> erhöht Lesbar- und Wartbarkeit des Codes enorm
    ​4. Setze Haltepunkte und gehe deinen Code im Debugger Schritt für Schritt durch, überzeuge dich dabei das die Variablen die Werte haben, die sie haben sollen -> Debuggen, Fehler finden und beseitigen -> Hilft Fehler selbst zu identifizieren und zu lösen
    ​5. -> Siehe Frage von Rod

    Grüße
    ​mrMo
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @mrMo
    Ich weiß dass der ser unleserlich ist...war auch eigentlich nur für miich gedacht und ja muss zugeben recht blöd :x

    Der wirft mir keine Zeile aus sonst könnte ich das Problem ja schnell lokalisieren. Blibt mir nix anderes übrig als step by step da durch zu wurschteln.

    My.Computer ersetzen.

    Müsste googlen was sich verändert hat. Würdest du mir das auch erklären?
    Oder reicht da schon nur filesystem....
    THX
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~
    @razzzer530i Meine konkrete Frage in Post #2 hätte ich auch ignoriert. X(
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    razzzer530i schrieb:

    Der wirft mir keine Zeile aus sonst könnte ich das Problem ja schnell lokalisieren.

    Kein Wunder - mit dem TryCatch verhinderst du ja selbst, dass du eine vernünftige Fehlermeldung bekommst.
    Da gibt's eine ganz einfache Abhilfe: Schmeiss den TryCatch raus.
    Und sofort wirst du das Problem lokalisieren können - dazu sind Fehlermeldungen ja da - lass die einfach ihren Job machen.
    Auch wenn der Code "nur für dich" war gehört er Strukturiert. Siehst ja jetzt was das für ne Sucherei ist ;)

    Statt My.Computer.FileSystem.:
    Im IO Namespace (System.IO) gibt's alles Mögliche um mit Dateien zu arbeiten. Unter anderem die StreamReader und die File Klasse. Damit kannst du eine Datei auslesen.

    Ja da mussten wir alle schon durch: step by step debuggen und im Anschluss wundern warum man das so programmiert hat ;)
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @mrMo
    Mit SR oder SW arbeite ich ja auch. ich habe nur keine Lust jedes mal wenn ich eine komplette datai auslesen möchte und nur den reinen text brauche nen streamreader aufzumachen.
    mit filesystem und readalltext hab ich halt nen sehr kurzen einzeler :D

    Aber werde dran arbeiten :)

    Habe folgendes Problem : Haltepunkt wurde nicht erreicht.
    Führe meine Aktion in einem BGW aus und komme nicht an den Haltepunkt. Selbst wenn ich ihn am Anfang des BGW setze.
    Wie kommt das zu stande?


    //EDIT
    Also das ganze funktioniert doch fehlerfrei.
    Habe am Ende ja die Zeile dt.rows.clear

    Damit will ich erreichen, dass nach dem Speichern die angezeigte Tabelle wieder leer ist. Lösche ich dieseZeile, habe ich keinen Error mehr. Verstehe nur nicht wo das Problem ist. Kann ich nicht einfach ne Tabelle leeren? Wenn sie vorher leer war konnte das DGW sie auch anzeigen. Lösche ich aber, nachdem ich die Tabelle als Datasource hinterlegt habe, so gibt es nen Error.


    Nochmal Edit :x

    Problem gelöst.

    Ich glaube, es liegt daran, dass ich während ich im DGW zeilenweise etwas mache, die Zeilen löschen will. Und natürlich kann nicht in row(1) nichts machen, wenn ich gerade alle rows gelöscht habe. Habe den Sinn glaube ich verstanden. Hoffe dass es nicht falsch ist.
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „razzzer530i“ ()

    @razzzer530i Würdest Du die unendliche Freundlichkeit besitzen, meine Frage aus Post #2 nach dem Ownerdrawing zu beantworten? X(
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    razzzer530i schrieb:

    Ich glaube, es liegt daran, dass ich während ich im DGW zeilenweise etwas mache, die Zeilen löschen will. Und natürlich kann nicht in row(1) nichts machen, wenn ich gerade alle rows gelöscht habe. Habe den Sinn glaube ich verstanden. Hoffe dass es nicht falsch ist.


    ​Nicht glauben, prüfen und dann wissen. Was meinst du wie oft man einem Irrglauben unterliegt und daher an den falschen Stellen sucht :)
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @RodFromGermany
    Sorry dsa habe ich völlig vergessen :D

    Also gezeichnet wird von mir selbst nichts mehr. Gezeichnet wird nur das, was das dgw im Standart Zeichnet. verwende das dgw ja nur, um mir die tabelle anzeigen zu lassen.

    @mrMo

    Bin schon dran :)

    Hab da aber mal ne Frage zu die mir noch nie richtig beantwortet wurde...Geht um Strukturierung des Codes.


    Um zu ermöglichen, während eines Prozesses den Fortschritt anzuzeigen usw. arbeite ich mit BackGroundWorkern.
    bgw1 macht aktuell 100 zeilen code(z.B.)
    Sagen wir ich habe 10 Funktionen. Die berechnen irgendwas anhanf von eingelesenen Daten.

    Funktioniert es problemlos:
    bgw1.dowork

    funk1()
    funk2()
    funk3()?

    Mir hat hier mal jemand gesagt, dass ich sowas auf keinen Fall machen soll.
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~
    @razzzer530i Die Exception wird in diversen Paint-Prozeduren generiert, sieh mal, ob das bei Dir irgendwo vorkommt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    @razzzer530i Die Exception wird in diversen Paint-Prozeduren generiert, sieh mal, ob das bei Dir irgendwo vorkommt.


    Kann das nirgendwo entdecken...
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~

    razzzer530i schrieb:

    ************** Ausnahmetext **************
    System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    bei System.Windows.Forms.DataGridViewRow.GetErrorText(Int32 rowIndex)
    bei System.Windows.Forms.DataGridViewRow.Paint(Graphics graphics, Rectangle clipBounds, Rectangle rowBounds, Int32 rowIndex, DataGridViewElementStates rowState, Boolean isFirstDisplayedRow, Boolean isLastVisibleRow)
    Das ist die Fehlermeldung.
    Kommt DGV.GetErrorText() bei Dir vor?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    razzzer530i schrieb:


    Kommt DGV.GetErrorText() bei Dir vor?


    Nope. Aber kann es vlt was damit zutun haben, dass ich beim DGV ShowRowErrors und ShowCellErrors auf True habe? Oder was für Erros werden dadruch angezeigt?
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~
    Die Codeschnippsel und die Fehlermeldung lassen sich m.E. so nicht interpretieren. Gerade bei System.NullReferenceExceptions kommt es ganz wesentlich auf den Kontext an, in dem der Fehler aufgetreten ist.
    Es wäre sehr hilfreich, wenn Du ein lauffähiges Projekt mit Testdaten posten könntest.

    razzzer530i schrieb:

    dass ich beim DGV ShowRowErrors und ShowCellErrors auf True habe?
    Möglicherweise.
    Setz die mal auf False, teste und berichte.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    us4711 schrieb:

    Die Codeschnippsel und die Fehlermeldung lassen sich m.E. so nicht interpretieren.
    So ähnliches sagte ich bereits in post#7.
    Solange da dieser kontraproduktiven TryCatch drinne ist, kann einem der Debugger kaum was helfen (ist ja deaktiviert).

    Aber er sagt ja, das Problem habe sich zwischenzeitlich sonstwie iwie aufgelöst.
    Habe den ganzen Try Catch Rotz raus geschmissen. Habe Fehleranzeige ausgeschaltet und ich habe vorher an einer gewissen stelle im Code alle Rows rausgehauen aber gleichzeitig versucht, Daten aus den Zeilen per Index auszulesen was ja unmöglich ist. Seitdem ich das korrigiert und Fehler für Rows anzeigen ausgeschaltet habe, tritt der Fehler nicht mehr auf. Hatte dieses Try Catch Gerüst ja nur genommen um den Fehler zu ignorieren, was nicht geholfen hat.

    Also Danke Rätsel ist so scheinbar gelöst.
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~