السلام عليكم
الله يجزيكم كل خير ممكن تساعدونييييي؟؟ عشان انا احترت
دلوقتي انا معاي فورم وفيها combobox انا جبت البيانات اللي جو ال combobox من قاعدة البيانات من جدول المدن
دلوقتي انا عايز اختار مدينة من ال combobox دي واخليها ل user ال user ده موجود في جدول تاني
المشكلة مش في قاعدة البيانات عشان العلاقات فيها تمام وكلها ميه ميه
المشكلة في كود الجافا عشان بيطلعلي خطأ ( Cannot add or update a child row: a foreign key constraint fails)
وتقريبا الخطأ ده عشان انا مش مختار مدينة
دلوقتي اللي عاوزه انا عايز ادخل اسم مستخدم واختارله المدينة من القائمة
وياريت حد يوضحلي طريقة ربط ال combobox بقاعدة البيانات وطريقة استدعاء البيانات من قاعدة البيانات ووضعها جوه ال combobox وطريقة اختيار واحد من هذه البيانات وارجاعها لقاعدة البيانات في جدول مختلف
وده كود الفورم
package com.core.gui.dialogs;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import com.core.dao.impl.CityDAOImpl;
import com.core.dao.impl.HumanDAOImpl;
import com.core.database.Manager;
import com.core.entities.Human;
import com.core.exception.DAOException;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class RegistrationDialog extends JDialog {
private final JPanel contentPanel = new JPanel();
DefaultComboBoxModel model = new DefaultComboBoxModel();
private JComboBox<String> comboBox = new JComboBox<String>();
private final JTextField textField = new JTextField();
private final JTextField textField_1 = new JTextField();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
RegistrationDialog dialog = new RegistrationDialog();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public RegistrationDialog() {
setBounds(100, 100, 450, 300);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
comboBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});
comboBox.setBounds(83, 104, 169, 20);
contentPanel.add(comboBox);
textField.setColumns(10);
textField.setBounds(83, 73, 169, 20);
contentPanel.add(textField);
textField_1.setColumns(10);
textField_1.setBounds(83, 37, 169, 20);
contentPanel.add(textField_1);
Connection conn = Manager.getConnection();
comboBox.setModel(model);
try {
String sql = "select * from city";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery(sql);
//
while (rs.next()) {
model.addElement(rs.getString("name"));
ResultSet rsu = ps.getGeneratedKeys();
// comboBox.addItem(rs.getString("name"));
}
} catch (Exception e) {
;
}
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton okButton = new JButton("OK");
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
getdata();
} catch (SQLException e) {
e.printStackTrace();
}
}
});
okButton.setActionCommand("OK");
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
}
{
JButton cancelButton = new JButton("Cancel");
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
public void getdata() throws SQLException {
Human human = new Human();
RegistrationDialog dialog = new RegistrationDialog();
human.setFirst_name(dialog.textField.getText());
human.setNational_id_number(dialog.textField_1.getText());
// human.setCity_id();
try {
new HumanDAOImpl().insert(human);
// new CityDAOImpl().insert(null);
} catch (DAOException e) {
e.printStackTrace();
}
}
}