Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Login
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

Login

beantworten | zitieren | melden

1)Ich habe ein Programm geschrieben bei dem man sich ua. auch einloggen muss
Ich frage mich nun wie es möglich ist den Login Namen in jeder Klasse zu verfügung zu stellen ??
Die mysql Befehle stehen in einer extra Klasse

2)
Weiss einer wie man seinen MySQL Server nach aussen freigeben kann??(XAMPP von appachefriends)
private Nachricht | Beiträge des Benutzers
Cord Worthmann
myCSharp.de - Member



Dabei seit:
Beiträge: 1.207

beantworten | zitieren | melden

1)
erstelle dir doch eine Credentials-klasse, in der du beim login den usernamen, domain oder was du sonst noch brauchst ablegst.
diese klasse refenzierst du dann in einer zentralen klasse deiner anwednung, so dass du sie dann von überall her nutzen kannst.

2)
normalerweise legt man das bei der installation von MySql fest - aber evtl. kannst du das auch in der ini nachträglich ändern.
schau dir mal die einstellungsvariablen im MySql-manager (win32) dazu an.


grtz
chief
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

beantworten | zitieren | melden

public class nick_class
	{
		public String user="";
		public void nick_an(String nickname)
		{
			user=nickname;
			
		}
		public String  nick_aus()
		{
			
			return user;
		}
	}
Ich lasse mir den Nick aus der MySqlKlasse geben und will den nun bei Aufruf der Methode nick_aus() "ausgeben" lassen
Nur steht in der Methode nick_aus() user leer weil die Zuweisung nicht übernommen wurde
private Nachricht | Beiträge des Benutzers
Cord Worthmann
myCSharp.de - Member



Dabei seit:
Beiträge: 1.207

beantworten | zitieren | melden

dafür gibt es eigendlich die get/set-accessoren für properties.
das ginge dann so...


public class NickClass
{
    private string user;

    public string User
    {
        get { return this.user; }
        set { this.user = value; }
    }
}

// so kannst du dann auf die eigenschaft zugreifen...

NickClass nc = new NickClass();

nc.User = // nickname aus der DB
string user = nc.User;



grtz
chief
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

beantworten | zitieren | melden

Aso geht das
Danke sehr
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

beantworten | zitieren | melden

So habe das gerade mal getestet und es wird immer noch nichts ausgegeben

set { this.user = value;
Console.WriteLine("test"+this.user); //Nick wird Ausgegeben
}
get { 
Console.WriteLine("test"+this.user); //Nick wird nicht Ausgegeben sondern nur test
return this.user;}
private Nachricht | Beiträge des Benutzers
Cord Worthmann
myCSharp.de - Member



Dabei seit:
Beiträge: 1.207

beantworten | zitieren | melden

dann kann das nicht dieselbe instanz der klasse sein, in die du den wert hineingeschrieben hast - sonst muss der wert drinstehen.

in welchem zusammenhang erstellst du die klasse und verwendest sie dann weiter?
(code...)


grtz
chief
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

beantworten | zitieren | melden

Also der Wert kommt aus der DB

String n="";
			String p="";
			try
			{
				String b="Select nick,pw from user where (nick='"+nick+"')and (pw=MD5('"+pw+"'));";
				this.verbinden();
				MySQLCommand com = new MySQLCommand(b,this.con);
				read=(MySQLDataReader)com.ExecuteReader();
				
				while(read.Read())
				{
					n=read[0].ToString();
					p=read[1].ToString();
					
				}
				if(p=="")
				{
					MessageBox.Show("Userdaten nicht vorhanden");
				}
				else
				{
					Menü start=new Menü();
					nick_class start2=new nick_class();
					start2.User=n; //Übergabe
					start.Show();
				}
				com.ExecuteNonQuery();
				com.Dispose();
			}
			catch(MySQLException MErr)
			{
				throw new Exception(MErr.Message + "    " + MErr.StackTrace);
			}
			catch(Exception err)
			{
				throw new Exception(err.Message +  "    " + err.StackTrace);
			}
			
			con.Close();
			
			

		}

public class nick_class
	{
		
		private string user;

		public string User
		{
			
			set { this.user = value;}
			get { 
				Console.WriteLine("test"+this.user);
				return this.user;}
		}

	}
private Nachricht | Beiträge des Benutzers
Cord Worthmann
myCSharp.de - Member



Dabei seit:
Beiträge: 1.207

beantworten | zitieren | melden

und wenn du jetzt an anderer stelle "start2.User" ausgeben lässt, wird nicht ausgegeben?
das kann ich mir kaum vorstellen - wie verwendest du die instanz "start2" denn weiter bzw. wo lässt du dir die "User"-eigenschaft ausgeben?


grtz
chief
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

beantworten | zitieren | melden

get {
Console.WriteLine("test"+this.user);
return this.user;}

Da müsste er doch was ausgeben

Die eigentliche Ausgabe soll in einem TextField erscheinen
Der soll dort seine Nutzungsdaten ändern können
nick_class nick_s=new nick_class();
nick=nick_s.User;
private Nachricht | Beiträge des Benutzers
Cord Worthmann
myCSharp.de - Member



Dabei seit:
Beiträge: 1.207

beantworten | zitieren | melden

nick_class nick_s=new nick_class();
nick=nick_s.User; 
dacht ichs mir doch, da steckt der fehler!

du erstellst eine neue instanz von "nick_class" - da ist natürlich der wert nicht enthalten.
du musst genau die instanz ("start2") weiterverwenden, der du den wert auch übergeben hast, wenn du eine entsprechende ausgabe haben willst...
;-)


grtz
chief

ps: evtl. machst du dich in punkto objekte und instanzen noch mal etwas schlauer - ich habe die vermutung, dass du nicht weisst, was eine instanz einer klasse ist, und wie man diese sinnvoll verwendet.
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

beantworten | zitieren | melden

Hä???
Ich habe die doch weiter verwendet

Abruf:nick_class nick_s=new nick_class();
nick=nick_s.User;
Console.WriteLine("test"+nick);

Übergabe
nick_class start2=new nick_class();
start2.User=n;

Methode
public string User
{

set { this.user = value;}
get { return this.user;}
}

Sag mal genau wo das der Fehler sein soll!!
private Nachricht | Beiträge des Benutzers
Cord Worthmann
myCSharp.de - Member



Dabei seit:
Beiträge: 1.207

beantworten | zitieren | melden

Abruf:
nick_class nick_s=new nick_class();

nick=nick_s.User;
Console.WriteLine("test"+nick);

genau hier erstellst du eine neue instanz der klasse "nick_class".
diese instanz hat keinen inhalt für das member "User"!

den wert für "User" hast du zuvor für eine andere instanz der klasse "nick_user" namens "start2" übergeben.
die instanz "nick_s" hat NICHT die werte von "start2", nur weil sie zufällig objekte der gleichen klasse sind, da es zwei verschiedene instanzen sind.
informiere dich über die begriffe "Klasse", "Objekt" u. "Instanz", wenn du nicht verstehst, was ich meine.


grtz
chief
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

beantworten | zitieren | melden

Das ist doch voll der Scheiß
Ich habe jetzt in der Klasse db_coding eine Methode gemacht die den Wert in die andere Klasse liefern soll

public String nick_back()
{
	Console.WriteLine(start2.User);
	String nickname=start2.User;
	return nickname;
}
Es wird wieder nix übergeben dabei ist es doch die gleiche instanz
private Nachricht | Beiträge des Benutzers
Golo Roden
myCSharp.de - Member

Avatar #avatar-2167.png


Dabei seit:
Beiträge: 4.207
Herkunft: Riegel am Kaiserstuhl

beantworten | zitieren | melden

Zitat
Original von alf468
Das ist doch voll der Scheiß

LOL ... also ohne Dir jetzt zu Nahe treten zu wollen, Du disqualifizierst Dich mit solchen Aussagen gerade selbst ...

Wenn Du das für "voll den Scheiß" hältst, dann zeigt das lediglich, dass Du ganz gravierende Verständnisprobleme hast. Wie Du die lösen kannst, wurde Dir schon mehrfach nahegelegt ... schau Dir an, was Klassen, Objekte, Instanzen, ... sind.
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de
private Nachricht | Beiträge des Benutzers