Brauche Hilfe bei Datenbankupdate

05/19/2016 18:26 SiiVAS#1
Hallo Community,

hab ein kleines Problem:

Ich habe mit VB 2010 ein Programm zur Datenverwaltung geschrieben.

Ebenfalls habe ich die Funktion zum Ändern von Daten. Allerdings ist sie momentan so, dass sich alle Datensätze ändern, d.h. ich kann aus irgend einem Grund nicht den spezifischen Datensatz wählen

Code:
SQL = "UPDATE customer SET name='" & text_name.Text & "',room='" & text_raum.Text & "',age='" & text_alter.Text & "'"
Das ist atm meine Zeile, da muss wahrscheinlich irgendwo eine Where Anweisung rein, allerdings weiß ich nicht wo :/.

Bräuchte da Hilfe.

edit:

Code:
SQL = "UPDATE customer SET name='" & text_name.Text & "',room='" & text_raum.Text & "',age='" & text_alter.Text & "' WHERE name='" & text_name.Text & "',room='" & text_raum.Text & "',age='" & text_alter.Text & "'"
gibt mir n Syntax Error aus...

edit2: Name, Alter und Raum wird vom Nutzer selbst eingegeben.

edit3: Problem gelöst, aber habe jetzt ein neues Problem (:))

Ich habe ein Anmeldeformular für ein Hostel gemacht.

Das Hostel besteht aus 4 Räumen mit je 4 Betten

Durchnummeriert habe ich sie so:

Zimmer1: Bett1, Bett2, Bett3, Bett4
Zimmer2: Bett1, Bett2, Bett3, Bett4
Zimmer3: Bett1, Bett2, Bett3, Bett4
Zimmer4: Bett1, Bett2, Bett3, Bett4

Jetzt will ich aber verhindern, dass bei der Eingabe vorkommt, dass in ein besetztes Bett eine Person angemeldet wird. Das Unique machen von Zimmer und Bett ergibt ja keinen Sinn, weil ich dann im Endeffekt nur noch Zimmer1: Bett1
Zimmer2: Bett2 usw.

anmelden kann.

Wie könnte ich das in VB umsetzen?
05/19/2016 22:00 lucaber#2
Melde dich gerne per Skype: lucaber3
05/20/2016 09:04 SwarN#3
Also beim ersten Befehl fehlt klar das Where Statement und beim 2ten ist das Where-Statement das selbe wie dein Updatebefehl.


Normalerweiße hat jeder Datensatz eine ID in der Datenbank die einen Datensatz eindeutig macht. Diese kannst du in deiner Datenbank auch einstellen dass sie automatisch mitgeneriert wird.

Wenn du dir nun in einer Änderungsmaske diesen Datensatz holst, dann hast du auch diese ID des Datensatzes. Diese Speicherst du in einer Variable ab. Ist man dann fertig mit Ändern und soll der Update befehl abgesetzt werden, benutzt du diese ID im Where Statement um den Datensatz "wiederzufinden". (Sicherlich schöner wäre es wenn du daraus ein Objekt formen würdest, aber ich denke so weit bist du noch nicht :))

Somit würde der Befehl dann wiefolgt aussehen:
Quote:
"UPDATE customer SET name='" & text_name.Text & "',room='" & text_raum.Text & "',age='" & text_alter.Text & "' WHERE ID = " & _id
Das sollte zumindest deine Frage beantworten.
05/22/2016 15:37 SiiVAS#4
#push, da ein neues Problem besteht :/
05/23/2016 11:33 SwarN#5
Klassen/Tabellen:

Hostel, Zimmer, Bett, Reservierungen, Kunde:

Hostel:
ID, Name, Anschrift, etc...,

Zimmer:
ID, HostelID, ZimmerNr(hier kannst du auch die ID als Zimmernummer bzw. als eindeutigkeit verwenden), etc...,

Bett:
ID, ZimmerID

Reservierungen:
ID, BettID, Von, Bis, KundenID, etc...

Kunde:
ID, Vorname, Nachname, Anschrift, etc....



Dann kannst du nachdem der Kunde eine Reservierung ausgewählt hat abprüfen ob zu dem Datum noch ein Zimmer frei ist. Oder du zeigst ihm gleich an wie viele Betten zu dem ausgewählten Datum noch frei sind etc..... dass ist dann alles dir überlassen.