Вставка данных в таблицу внешних ключей на сервере SQL из Java - PullRequest
0 голосов
/ 19 мая 2019

У меня есть 3 таблицы в SQL SERVER: таблица Employee, таблица HourlyEmployee и таблица SalariedEmployee. В JFrame на Netbeans у меня есть 2 переключателя, которые пользователь может выбрать либо на почасовой, либо на окладной основе. Если выбран часовой переключатель, текстовое поле будет включено ниже. Теперь я хочу, чтобы пользователь мог ввести почасовую ставку в этом поле, например 4,5 .. и я хочу, чтобы 4,5 сохранялись в таблице HourlyEmployee. Я написал этот код на Submit, но он не работает должным образом: (самое важное, где есть if (rHourly.isSelected ()) ...)

try{
            conn = DriverManager.getConnection(connectionUrl);
            String query ="insert into Employee "
            + "(Name,Surname,Gender,DOB,"
            + "Status,Address,Email,"
            + "Mobile, DateHired, Salary, Job, Type, Image) values 
(?,?,?,?,?,?,?,?,?,?,?,?,?)";
            pst = conn.prepareStatement(query);

            pst.setString(1, txtName.getText());
            pst.setString(2, txtSurname.getText());               
            if(rMale.isSelected()) {
                gender="Male";
            }
            if(rFemale.isSelected()) {
                gender="Female";
            }
            pst.setString(3,gender);
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            String addDate = df.format(dpDOB.getDate());
            pst.setString(4,addDate);
            pst.setString(5,cbStatus.getSelectedItem().toString());
            pst.setString(6,txtAddress.getText());
            pst.setString(7,txtEmail.getText());
            pst.setString(8,txtContact.getText());
            String addDate2 = df.format(dpHired.getDate());
            pst.setString(9,addDate2);
            pst.setString(10,txtSalary.getText());
            pst.setString(11,txtJob.getText());
            if(rHourly.isSelected()) {
                type="Hourly";
                String sql = "insert into HourlyEmployee (HourlyRate, 
EmployeeID, Name, Surname) values (?,?,?,?)";
                pst = conn.prepareStatement(sql);
                pst.setString(1, txtHourly.getText());
                pst.execute();
            }
            if(rSalaried.isSelected()) {
                type="Salaried";
                String sql1 = "insert into SalariedEmployee (Salary, 
EmployeeID, Name, Surname) values (?,?,?,?)";
                pst = conn.prepareStatement(sql1);
                pst.setString(2, txtSalaried.getText());
            }
            pst.setString(12,type);
            pst.setBytes(13,personImg);

            pst.executeUpdate();
            JOptionPane.showMessageDialog(null,"Data is saved 
successfully");


        }catch(Exception e) {
            JOptionPane.showMessageDialog(null,e);
        }
    }

Любая помощь очень ценится! : D

...