MySQL Abfrage mit flexibler WHERE bedingung

chawo87

Mitglied
Hallo

ich habe eine datenbank mit gui und möchte nun per sql daten auf der gui ändern

wenn ich die ID auf der gui auswähle soll der name der entsprechenden ID zu sehen sein
hier ist mein abfrage string

[JAVA=42]String vornamestring = "SELECT vorname FROM innendienst WHERE id='1';";[/code]

wie muss ich die 1 verändern um die jetzige id zu bekommen?

[JAVA=42] PreparedStatement statement = conn.prepareStatement(vornamestring);
ResultSet rs;
rs = statement.executeQuery();
while(rs.next()){
vornameTextField = new JTextField();
getContentPane().add(vornameTextField);
vornameTextField.setText(rs.getString("vorname"));
vornameTextField.setBounds(10, 92, 188, 20);
}[/code]
 
Die Eingabe ist doch irgendwo gespeichert, oder nicht? Oder meinst du, dass du die aus der Query rausziehen kannst?
Dann kannst du auch
Code:
SELECT vorname, id FROM innendienst WHERE id='1';
machen
 
bildkc.jpg



soll so ablaufen ich wähle die ID aus un dementsprechend ändern sich die einträge in den TextField bereichen
 
Java:
int rrn = 5; // rrn muss halt deine ID bekommen! damit ist es flexibel!
String vornamestring = "SELECT vorname FROM innendienst WHERE id= ? ";
PreparedStatement ps = conn.prepareStatement(MVG_SQL);
ps.setInt(1, rrn);
ResultSet rs = ps.executeQuery();
 
also hab das noch nicht so ganz hinbekommen

erstma eine frage was bedeutet MVG_SQL


und den wert der combobox bekomme ich bei mir auch über eine sql abfrage mit einem id string

sieht dann bei mir so aus rs.getInt("id")
 
Anstelle von
Code:
MVG_SQL
soll bestimmt einfach
Code:
vornamestring
stehen.

Du brauchst ja die ID um die sql Abfrage zu bilden... deswegen musst du ihn ja schon aus der Combobox holen...
 
also mein code sieht jetz wie folgt aus
[JAVA=42] Object id = idComboBox.getSelectedItem();
String vornamestring = "SELECT vorname FROM innendienst WHERE id= '?' ;";
PreparedStatement ps = conn.prepareStatement(vornamestring);
ps.setObject(1, id);
ResultSet rs = ps.executeQuery();
while(rs.next()){
vornameTextField = new JTextField();
getContentPane().add(vornameTextField);
vornameTextField.setText(rs.getString("vorname"));
vornameTextField.setBounds(10, 92, 188, 20);
}[/code]

un ich bekomme den fehler

Parameter index out of range (1 > number of parameters, which is 0).

Fehler is in der Zeile ps.SetObject(1, id)
 

Neue Themen


Zurück
Oben