System.NullReferenceException

  • C#

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    System.NullReferenceException

    /edit
    Danke, vielleicht sollte ich es immer aufschreiben, dann krieg ich es auch ohne Onkel Google raus. Ein einfaches

    C#-Quellcode

    1. if (dgvGraduierung.CurrentRow != null)

    drumherum ums using und das wars.

    Hallo,
    so ganz langsam krieg ich Krise (nach zwei Tagen suchen im Netz). Ich hab ein DataGridView, da will ich ein Update drin machen.

    C#-Quellcode

    1. private void dgvGraduierung_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    2. {
    3. using (IDbConnection connection = new MySqlConnection(Properties.Settings.Default.ConnectionString))
    4. {
    5. var p = new DynamicParameters();
    6. p.Add("p_mode", "update");
    7. p.Add("p_Grad", dgvGraduierung.CurrentRow.Cells["gradGradDGV"].Value.ToString());
    8. p.Add("p_ID", Convert.ToInt32(dgvGraduierung.CurrentRow.Cells["gradIDDGV"].Value.ToString()));
    9. connection.Execute("sp_mGraduierung", p, commandType: CommandType.StoredProcedure);
    10. ClearDGVGrad();
    11. }
    12. }

    Das gibt dann diese Fehlermeldung:

    Quellcode

    1. System.NullReferenceException: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
    2. System.Windows.Forms.DataGridView.CurrentRow.get hat null zurückgegeben.

    Ich krieg nicht raus, was das Ding von mir will. Hat mal bitte jemand einen Denkanstoss für mich?
    Grüße aus Berlin
    ---
    Kuroi Fenikkusu Kampfsportverein e.V.
    https://www.spandau-ninja.de

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Hatori“ ()

    Wie wäre es mit e.ColumnIndex und e.RowIndex?
    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!
    Das nächste Mal ist sehr absehbar, denn CurrentRow enthält offensichtlich zumindest gelegentlich die falsche Zeile.
    Weil wenn CurrentRow die richtige wäre, dann würde es ja bedeuten dass ein CellValue gechanged worden wäre in einer Row, die nicht existiert.

    Es sei denn, dgvGraduierung_CellValueChanged() behandelt garnet das CellValueChanged-Event, sondern wird von iwo anners aus aufgerufen - das kann mna dem Code ja nicht ansehen.