Daten Abfrage
-
Progmafi schrieb:
Mein Wissensstand bzw. mein können liegt ca. bei 30 Prozent.
30% von was?
Hier fängt aber auch schon mein Problem an den jeder User ist nicht gleich, z.B. User1 soll Adminrechte bekommen User2 nicht. Ich trage nun in meiner Datenbank bei User1 unter der Spalte Adminrechte "JA" ein. Das Programm fragt Aber nur zwei Variable ab und weiß nicht das User1 Adminrechte hat, also kommt nur wieder die MsgBox mit "Hallo User" es sollte aber dieses mal durch die Adminrechte "Hallo Admin" in der MsgBox stehen. User2 bekommt keine Adminrechte also trage ich in die Datenbank unter der Spalte Adminrechte "NEIN" ein, und der Text soll bei User2 ganz normal "Hallo User" lauten da er ja keine Adminrechte wie User1 hat.
Was hindert dich, diese Information aus der Datenbank zu holen?
PS: So allgemein ist dir schon klar, dass man niemals Passwörter im Klartext speichert?
-
Ja es ist mir klar das man Passwörter verschlüsselt speichert es ist auch nur ein Programm zum Üben. Was mich daran hindert ist das ich nicht weiß wie ich die dritte Variable mit einbinde in den Quelltext "OBEN angeführt". Mit einem normalen If Befehl funkt es nicht :(.
-
Progmafi schrieb:
Was mich daran hindert ist das ich nicht weiß wie ich die dritte Variable mit einbinde in den Quelltext "OBEN angeführt". Mit einem normalen If Befehl funkt es nicht :(.
Möchtest du damit sagen, dass dein Code, wie oben ausgeschrieben, nicht funktioniert? Vielleicht solltest du dir mal die Rangfolge der Operatoren in VB.net angucken. Oder überhaupt logische Verknüpfungen. Ich hatte den Code bisher für Pseudocode gehalten.
In der Programmierung muss man sich genau ausdrücken, sowohl wenn man mit dem Computer spricht, als auch wenn man mit anderen Programmierern spricht. Viele Leute hier haben Schwierigkeiten, zu verstehen, was du überhaupt möchtest. Der Computer wahrscheinlich ebenso. Du musst von jedem Zeichen in deinem Programm genau wissen, wo und warum du es setzt. Zufällig irgendwelche Zeichen im Code einfügen, bis man keine Syntaxfehler mehr bekommt, führt nie Code der tut, was man möchte.
Ebenso ist "funktioniert nicht" oder "Hilfe!" nicht hilfreich bei der Kommunikation mit anderen Programmierern. Wenn du Hilfe möchtest, musst du genau beschreiben, was du erreichen möchtest (nicht wie du etwas erreichen möchtest!), was du getan hast, was du erwartest, was stattdessen passiert. Codebeispiele sollten auf das wesentliche reduziert sein, aber gleichzeitig vollständig genug, dass man sie einfach kopieren und ausführen kann, ohne sie ergänzen zu müssen. Und ganz wichtig ist, dass man prüft, ob das Problem in dem reduzierten Codebeispiel überhaupt noch auftritt. Ein Codebeispiel, das bloß so ähnlich aussieht wie der Problemcode, am besten noch ungetestet, unvollständig und voller anderer Fehler, kann man sich auch gleich sparen.
-
Mir wäre auch neu dass man {} Blöcke in VB .NET verwenden kann.
-
hustbaer schrieb:
Mir wäre auch neu dass man {} Blöcke in VB .NET verwenden kann.
Das soll aber schon VB.NET sein, oder? Ich war mir nicht so sicher, eben wegen der Klammern und komischen Operatoren, kenne aber auch nicht alle Programmiersprachen und Dialekte auf der Welt. Ich nahm dann zunächst an, dass es Pseudocode sein sollte, aber anscheinend ist das ja ernst gemeint.
-
Ich möchte ja nur wissen wie mein Programm aus der Datenbank Variable 3 auslesen kann, da komme ich nicht weiter. Es soll bei Adminrechte JA oder NEIN auslesen können und auch verwenden aber ich weiß nicht wie ich den Code schreiben muss das es JA und NEIN Verwenden kann.
Kann mir einer Helfen dabei?
PS: Der Blocke ist extra unter {} um ihn nicht zu debuggen wegen der fehler suche!
-
@Progmafi
Du wirst die TestTableAdapter1 Klasse anpassen müssen. Die hast du uns aber bis jetzt nicht gezeigt.
Wie das geht kann ich dir nicht genau sagen, ich verwende nie TableAdapter (ich schreib die SELECTs einfach selbst).PS: Der Blocke ist extra unter {} um ihn nicht zu debuggen wegen der fehler suche!
Hö?
-
hustbaer schrieb:
PS: Der Blocke ist extra unter {} um ihn nicht zu debuggen wegen der fehler suche!
Hö?
Kenne ich in VB jetzt auch nur in verbindung mit " with " und als collection initializer.
-
[quote="hustbaer"]@Progmafi
Du wirst die TestTableAdapter1 Klasse anpassen müssen. Die hast du uns aber bis jetzt nicht gezeigt.
Wie das geht kann ich dir nicht genau sagen, ich verwende nie TableAdapter (ich schreib die SELECTs einfach selbst).[quote]PS: Der Blocke ist extra unter {} um ihn nicht zu debuggen wegen der fehler suche![/quote]
Hö?[/quote]Oke Also das Select des TestTableAdapter bzw. des Adminstrings sieht so aus
SELECT COUNT() AS Result, Adminrechte AS Adminr
FROM Test
GROUP BY Adminrechte
HAVING (COUNT() = 1) AND (Adminrechte = ?).mehr hab ich nicht
Ich glaube der Fehler muss hier ligen:
[code]
Private Sub Login_Click(sender As Object, e As EventArgs) Handles Login.Click
Dim login = Me.TestTableAdapter1.TestString(txtUser.Text, txtPasswort.Text)
Dim adminrechte = Me.TestTableAdapter1.AdminString("Ja")If login & adminrechte Is Nothing Then
TestTableAdapter1.AdminString & MsgBox("User oder Passwort falsch! Bitte überprüfen Sie Ihre Eingabe!", MsgBoxStyle.Critical, "Fehler")
Else
MsgBox("Hallo", MsgBoxStyle.Information, "Hallo")End If
End Sub
End ClassPs: ICh lerne viel mit Büchern und vor allem Youtube und da hat einer {} diese Blöcke gemacht um die Zeile die er damit einbindet nich zu Debuggen
-
SELECT Adminrechte
FROM Test
WHERE Benutzername LIKE 'Programfi' AND PasswortHash LIKE 'md5-checksumOderÄhnlichesHauptsacheNichtDasPasswortAlsKlartext'Wenn bei dem oben genannten Select kein Wert heraus kommt -> den Benutzer gibt es nicht
Wenn genau ein Wert raus kommt -> dann solltest du ja als Ergebnis des Selects direkt den Wert haben, ob der Benutzer AdminRechte hat oder nicht
Wenn mehr als ein Datensatz zurück kommt -> dann solltest du evtl. noch UNIQUE constraints auf die Spalten Benutzername setzen, so dass es tatsächlich nur einen Benutzer mit diesem Namen gibt.
Die Spaltennamen "Benutzername", "PasswortHash" sind natürlich nur geraten ... du hast uns dein restliches DB-Schema ja nicht verraten