Problem beim Abfangen von null



  • Guten Tag!

    Ich stehe momentan komplett auf dem Schlauch. Keine Ahnung, weshalb ich nun immer die Fehlermeldung "Objektverweis wurde nicht auf eine Objektinstanz festgelegt" bekomme.
    Bisher hat mein Code immer funktioniert ... nun hab ich ihn in ein anderes Projekt übernommen ... und plötzlich hab ich Probleme.

    Daten werden aus der Datenbank in ein DataGridView (WinForms) geschrieben.
    Diese Daten möchte ich nun nach Excel exportieren.

    if (oWB.Worksheets.Count > 0)
                    {
                        oSheet = (Excel.Worksheet)oWB.Sheets[1];
    
                        for (int j = 0; j < grid.Columns.Count-9; j++)
                        {
                            for (int i = 0; i < grid.Rows.Count - 1091; i++)
                            {
                                if (grid[j, i].Value.ToString() == "") 
                                {
                                    oSheet.Cells[z, s] = "";
                                }
                                if (grid[j, i].Value == null)
                                //if (grid[j, i].Value.ToString() == null)  
                                {
                                    oSheet.Cells[z, s] = "";
                                }
                                else
                                {
                                    oSheet.Cells[z, s] = grid[j, i].Value.ToString();
                                }
                                z++;
                            }
                            s++;
                            z = 4;
                        }
                    }
    

    Damit ich nicht so lange debuggen muss, lasse ich der Einfachheit halber nur ein paar Zeilen und Spalten durchlaufen.

    Sobald ein NULL Wert abgerufen wird, kommt die Fehlermeldung.
    Wie kann ich das abfangen oder verhindern? Meine Versuche (siehe oben) klappen nicht.

    Vielen Dank!



  • Zeile 9, if (grid[j, i].Value.ToString()

    Was passiert wohl wenn grid[j,i].Value null ist?



  • Und wie kann ich das abfangen?



  • Hallo,

    entferne doch einfach diesen Block hier:

    if (grid[j, i].Value.ToString() == "") 
    {
         oSheet.Cells[z, s] = "";
    }
    

    ist doch völlig unnötig, denn unten kommt doch die Abfrage auf null, und
    im else-Zweig wird sowieso ein "" zugewiesen, wenn

    grid[j, i].Value.ToString()
    

    leer ist.

    MfG,

    Probe-Nutzer



  • JZieler schrieb:

    Und wie kann ich das abfangen?

    if (grid[j, i].Value != null)
    {
    }
    

    -> Grundlagen lernen. Du hast null Plan, hantierst aber mit GUI, Datenbank und Excel-Export.


Anmelden zum Antworten