System Null Reference Exception: Der Objektverweis wurde nicht auf eine Objektinstanz

David Simon

Grünschnabel
Hallo,
ich versuche, ein zufällig generiertes PW zu erzeugen, kann jemand mir sagen, wie ich das fehlerfrei realisieren kann?

Aufruf:

cmd.Parameters.Add("@AuCode", PasswordGenerator.GetMnemonic(7));

dezidierte Klasse:

public class PasswordGenerator
{
public static string GetMnemonic(int length)//mit Klassenname aufrufbar,
{ //keine Instanz nötig
string pw = string.Empty;//oder: string pw = "";
Random rnd = new Random((int)DateTime.Now.Millisecond);

if((length % 2) != 0) //ist Zahl grade oder ungrade
{
length++; //wenn ungrade, wird 1 hochgezählt
}

char[] consonants = {'p','q','y','ß','&'};
char[] vowels = {'ä','e','i','ö','ü'};

for(int i=0; i<(length/2); i++)
{
pw += consonants[rnd.Next(5)];
pw += vowels[rnd.Next(5)];
}
return(pw);
}
}
 
Re: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinsta

Hast du schon mal geguckt wo der Fehler auftritt? Mit Hilfe des Debuggers kann man sich dann auch angucken, welche Werte Objekte, Variablen etc. haben bzw. ob ihnen überhaupt etwas zugewiesen wurde.

In deinem Fall wurde ein Objekt nicht instanzierst, wovon aber bei dir anscheinend ausgegangen wird, dass es instanziert wird.

Nachdem deine Methode GetMnemonic funktioniert, dürftest du wohl cmd nicht instanziert haben, was auch immer cmd sein soll .. ich denke ein OdbcCommandr oder ein OleDbCommand ...

So gesehen müsstest du zB folgendes machen:
Code:
cmd.Parameters.Add(new OdbcParameter("@AuCode", PasswordGenerator.GetMnemonic(7)));
 
Zuletzt bearbeitet:
Re: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz

Hallo,
erstmal vielen Dank für die schnelle Antwort.

1. Debuggen geht leider bei mir nicht, irgendwie habe ich meine IDE falsch installiert.
Weisst Du vielleicht, wie ich das beheben kann?
"Fehler beim Ausführen des Projekts. Das Debuggen kann auf dem Webserver nicht gestartet werden. Die COM+-Registrierungsdatenbank hat einen Systemfehler festgestellt.

2. Die Zeile habe ich leicht angepasst (OleDb) eingefügt, daran lag es leider nicht.

3. Komisch ist, das Programm läuft (letzter Status 2004, dann lief meine Evaluationskopie vom MS SQL Server ab) mit dem MS SQL Server, nicht mit MS ACCESS.?
Heute abend werde ich das nochmal testen, indem ich das Übungsprogramm von SQL auf
Access ändern, vielleicht klappt es ja dann, obwohl ich nicht sehr optimistisch bin.

Wäre super, wenn Du einen Rat bzgl. Debuggen wüßtest.
Gruss, David
 
Re: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinsta

Geh in Konfiguration der Internet Informationsdienste. Mach die Eigenschaften von deiner Webapplikation auf und erstelle eben eine Application -> da gibts einen netten Button dafür.

Dann solltest du in der Lasche ASP.NET gucken, ob du auch wirklich 1.1 eingetragen hast oder 2.0 (solltest du 2.0 installiert haben). Danach müsste das Debuggen eigentlich laufen.
 
Hallo,
vielen Dank für die Hilfe.

das Problem mit dem Debuggen scheint gelöst - den beschriebenen Button habe ich zwar nicht gefunden, dafür aber zwei zu aktivierende Felder, die Debugging auf Server und Client-Seite aktivierten - ich hab sicherheitshalber beide angeklickt und seitdem oder kurz danach kann man die Funktion nutzen.

Das andere Problem hat sich auch gelöst. Und zwar habe ich die ganze Zeit 8-stellige Kennwörter produziert, das DB-Feld ist aber nur 7 Zeichen gross. Seitdem ich das geändert habe, tritt diese NullReference nicht mehr auf.

Bleibt noch, mich nochmals sehr für den Rat zu bedanken. Würde mich freuen, bald fitter zu sein, um mich vielleicht mal zu revanchieren. Fürchte aber, das wird noch eine Weile dauern...
 

Neue Beiträge

Zurück