C# XML abfrage

MisterWoox

Cadet 3rd Year
Registriert
Okt. 2016
Beiträge
39
Hallo,

Habe ein XML Wo ein "Key" gespeichert wird:

<Lizenzen>
<Key>123456789</Key>
</Lizenzen>

Und habe eine form wo ich diesen ändern und speichern kann aber ich schaffe es nicht .... Also ich habe eine Textbox und einen Button "Prüfen" Und ich muss in die Textbox den Code eingeben der im XML gespeichert ist aber wie schreibe ich die abfrage


if (textbox1.Text == nodeinnerText)
{
messagebox.Show("erfolgreich");
}
else
{
messagebox.Show("Falscher Key!");
}



Das ist so eine Idee die nicht geht bitte um Hilfe

MFG alessandro
 
Strings mit equals vergleichen wäre vielleicht mal ein Ansatz. Dann vielleicht auch mal den nodeinnerText und den textbox.Text auf der Console printen. Dann kannst du händisch überprüfen ob da überhaupt das gewünschte drinsteht.

Wo der nodeinnerText herkommt, schreibst du ja nicht. Vielleicht liegt da schon der Fehler.
 
Könntest du mir kleine beispiel machen mit der abfrage .... Programmier nocht nicht lange habe das wo ich jetzt habe schon mühsam erarbeitet

MFG alessandro
 
In C# kann man Strings ohne Probleme mit dem Vergleichsoperator vergleichen. Ich denke auch eher, dass das Problem beim Zuweisen von nodeinnerText liegt.

Setz dir doch einen Breakpoint und guck dir den Inhalt an.
 
Versuche dich mal an dieser Anleitung, das wird dir mehr helfen als wenn wir dir hier alles vorkauen.

https://support.microsoft.com/de-de/kb/307548

https://msdn.microsoft.com/de-de/library/aa287537(v=vs.71).aspx

Am ende musst du ja die Datei auslesen, dies geschieht in den meisten Fällen mit einer Schleife, in dieser Schleife kannst du dann dein String nodeinnerText gefüllt zurückgeben lassen.

PS: Variablen sollten nach der C# Codekonvention in CamelCase geschrieben werden, daher sollte deine Variable so lauten nodeInnerText =)
 
Zuletzt bearbeitet:
AW: XML abfrage --- was ist hier falsch

Hallo, Diese Methode ruft den den Innertext aus Key auf und setzt es in die TextBox es hat mal funk. aber komischerweiße jetzt nicht mehr finde auch nicht den fehler beim Debugen.





Unbenannt.PNG
 
Was kommt denn für ein Fehler? Ohne Fehlerbeschreibung kann man schwer helfen.

Tritt eine Exception auf?
Bleibt die Textbox leer?

Methodennamen fangen immer groß an PascalCase

PS: die Methode wird beim Laden der Form2 gestartet, kann es sein das du aber die Textbox in Form1 hast?
 
Zuletzt bearbeitet:
AW: Algemein

Habe den Fehler zufällig gefunden es war eine andere Methode die die Text Box leer gemacht hat. Aber danke und kleine frage wie würde das gehen das ich das in einer anderen textbox machen kann aus eine anderen form. Zb ich habe eine TexBox in Form1 und will es in ein Label in Form2 haben wie würde das Programiertechnisch richtig gehen.
 
Lager deine Methode in eine Klasse aus und dann kannst du Form übergreifend auf die Methode zugreifen.

Dann musst du am Ende deine Void Methode so umschreiben das sie ein String (deinem key) zurückgibt und fertig.

Du kannst dann die Klasse in jeder Form initialisieren und verwenden.
 
Ok danke dir ... Wie funkt. das genau das man auf eine andere klasse zugreifen kann ... bracht man dan icht ein using oder so
 
Du hast es oben in deinem Code schon gemacht.....

Code:
XmlDocument doc = new XmlDocument();

XmlDocument ist eine Klasse die du initialisierst um diese dann zu verwenden.

Und GetElementByTagName ist eine Methode in dieser Klasse.

Aber ich empfehle dir mal die Basics anhand dieses sehr guten Buchs (kostenlos) anzueignen

http://openbook.rheinwerk-verlag.de/visual_csharp_2012/

Ich denke viele Fragen werden sich dann von selbst klären:)
 
Zuletzt bearbeitet:
Zurück
Oben