System.NullReferenceException Ausnahme

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von 11dead11.

    System.NullReferenceException Ausnahme

    Hallo kann mir vielleicht jemand helfen :) ?
    mein Problem ist ich will einen kleinen updater für die mysql datenbank wo die daten von einer api nimmt.

    Da sind 6 Spiel modes die ich brauche solo,soloFPP,duo,duoFPP,Squad und SquadFPP
    es funktioniert alles nur das Problem ist wenn der Spieler ZB kein duoFPP gespielt hat bekomme ich eine Ausnahme: "System.NullReferenceException: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.""
    und die anderen daten werden nicht abgespeichert und das Programm stoppt.

    was kann ich da machen?










    C-Quellcode

    1. public static void Main(string[] args) => new Program().MainAsync().GetAwaiter().GetResult();
    2. private async Task MainAsync()
    3. {
    4. // Create client and send a stats request You can either use the "using" keyword or
    5. // dispose the PUBGStatsClient manually with the Dispose method.
    6. using (var statsClient = new PUBGStatsClient("API-KEY"))
    7. {
    8. var stats = await statsClient.GetPlayerStatsAsync("DeniD", Region.AGG).ConfigureAwait(false);
    9. // Print out player name and date the stats were last updated at.
    10. Console.WriteLine($"Name: {stats.PlayerName}");
    11. try
    12. {
    13. var Solo = stats.Stats.Find(x => x.Mode == Mode.Solo && x.Region == Region.AGG && x.Season == Seasons.EASeason5).Stats.Find(x => x.Stat == Stats.KDR).Value;
    14. Console.WriteLine($"Solo KDR: {Solo}");
    15. var Duo = stats.Stats.Find(x => x.Mode == Mode.Duo && x.Region == Region.AGG && x.Season == Seasons.EASeason5).Stats.Find(x => x.Stat == Stats.KDR).Value;
    16. Console.WriteLine($"Duo KDR: {Duo}");
    17. var Squad = stats.Stats.Find(x => x.Mode == Mode.Squad && x.Region == Region.AGG && x.Season == Seasons.EASeason5).Stats.Find(x => x.Stat == Stats.KDR).Value;
    18. Console.WriteLine($"Squad KDR: {Squad}");
    19. var DuoFFP = stats.Stats.Find(x => x.Mode == Mode.DuoFpp && x.Region == Region.AGG && x.Season == Seasons.EASeason5).Stats.Find(x => x.Stat == Stats.KDR).Value;
    20. Console.WriteLine($"DuoFFP KDR: {DuoFFP}");
    21. //System.NullReferenceException: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
    22. var SquadFFP = stats.Stats.Find(x => x.Mode == Mode.SquadFpp && x.Region == Region.AGG && x.Season == Seasons.EASeason5).Stats.Find(x => x.Stat == Stats.KDR).Value;
    23. Console.WriteLine($"SquadFFP KDR: {SquadFFP}");
    24. var SoloFFP = stats.Stats.Find(x => x.Mode == Mode.SoloFpp && x.Region == Region.AGG && x.Season == Seasons.EASeason5).Stats.Find(x => x.Stat == Stats.KDR).Value;
    25. Console.WriteLine($"SoloFFP KDR: {SoloFFP}");
    26. {
    27. string constring = $"SERVER={server};DATABASE={database};UID={uid};PASSWORD={password};";
    28. string Query1 = "UPDATE denid213.TS3 SET Solo =@Solo,Duo =@Duo,Squad =@Squad,SoloFFP =@SoloFFP,DuoFFP =@DuoFFP,SquadFFP =@SquadFFP WHERE DBID =1";
    29. MySqlConnection conDatabase = new MySqlConnection(constring);
    30. conDatabase.Open();
    31. MySqlCommand cmd1 = new MySqlCommand(Query1, conDatabase);
    32. cmd1.Parameters.AddWithValue(@"Solo", Solo);
    33. cmd1.Parameters.AddWithValue("@Duo", Duo);
    34. cmd1.Parameters.AddWithValue("@Squad", Squad);
    35. cmd1.Parameters.AddWithValue(@"SoloFFP", SoloFFP);
    36. cmd1.Parameters.AddWithValue("@DuoFFP", DuoFFP);
    37. cmd1.Parameters.AddWithValue("@SquadFFP", SquadFFP);
    38. cmd1.ExecuteNonQuery();
    39. conDatabase.Close();
    40. }
    41. }
    42. catch (PUBGSharpException ex)
    43. {
    44. Console.WriteLine($"Could not retrieve stats for {stats.PlayerName}, error: {ex.Message}");
    45. }
    46. }
    47. await Task.Delay(-1);
    48. }
    49. }
    50. }




    Quellcode

    1. ​System.NullReferenceException ist aufgetreten.
    2. HResult=0x80004003
    3. Nachricht = Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    4. Quelle = ConsoleApplication3
    5. Stapelüberwachung:
    6. bei PUBGSharp.Examples.Program.<MainAsync>d__6.MoveNext() in C:\Users\DeniD\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\Program.cs: Zeile72
    7. bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    8. bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    9. bei System.Runtime.CompilerServices.TaskAwaiter.GetResult()
    10. bei PUBGSharp.Examples.Program.Main(String[] args) in C:\Users\DeniD\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\Program.cs: Zeile31
    Ja gut, dann musst du halt prüfen ob eins deiner Objekte Nothing ist bevor du es in irgend einer Art verwendest...

    If (DeinObjekt Is Nothing) Then
    'DoAwsomeStuff
    End If
    "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