组合框不显示数据库中的数据

时间:2019-12-31 03:09:10

标签: java model-view-controller netbeans

我正在为考试创建药房管理表格,我有2个表格,第一个表格用于将药品数据输入库存,第二个表格类似于收银员,您输入客户名称,他/她购买什么药品,多少,价格。问题出在第二种形式中,有一个组合框,我想用我已经通过第一种形式输入的药物数据来获取组合框,但是组合框不会显示任何内容。我的程序在MVC中运行

下面这些来自模型文件的代码,我认为这与我的问题有关。

// This method for display drug name into drug name combo box
public List<Transaction> fillcomboboxdrug() {
        PreparedStatement statement;
        List<Transaction> list = null;
        try {
            list = new ArrayList();
            String DISPLAYDRUG = "SELECT * FROM drug order by drug_name";
            statement = connection.prepareStatement(DISPLAYDRUG);
            ResultSet rs = statement.executeQuery();
            while (rs.next()) {
                Transaction T = new Transaction();
                T.setNamedrug(rs.getString("drug_name"));
                list.add(T);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }

// This method to show drug code depend to the drug who choosen in combo box, yeah i have a form to show the drug code
    public List<Transaction> getdrugcode(String drugname) {
        PreparedStatement statement;
        List<Transaction> list = null;
        try {
            list = new ArrayList();
            String FINDDRUG = "SELECT * FROM drug where drug_name=?";
            statement = connection.prepareStatement(FINDDRUG);
            statement.setString(1, drugname);
            ResultSet rs = statement.executeQuery();
            while (rs.next()) {
                Transaction T = new Transaction();
                T.setCodedrug(rs.getInt("cd_drug"));
                list.add(T);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }


// This method to show drug name depend to drug code input
    public List<Transaction> getdrugname(Integer code) {
        PreparedStatement statement;
        List<Transaction> list = null;
        try {
            list = new ArrayList();
            String FINDDRUG2= "SELECT * FROM drug where cd_drug=?";
            statement = connection.prepareStatement(FINDDRUG2);
            statement.setInt(1, code);
            ResultSet rs = statement.executeQuery();
            if (!rs.next()) {
                JOptionPane.showMessageDialog(null, "Data Not Found!");
            } else {
                Transaction T = new Transaction();
                T.setNamedrug(rs.getString("drug_name"));
                list.add(T);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }

还有我的控制器文件中的泰斯代码

// To call fillcomboboxdrug method from model file
public void fetchdrugcmb() {
        form.getCmbdrug().removeAllItems();
        form.getCmbdrug().addItem("-Choose-");
        for (Transaction T : model.fillcomboboxdrug()) {
            form.getCmbdrug().addItem(T.getDrugname());
        }
    }

// To call getdrugcode method from model file
    public void displaydrugcode() {
        if (form.getCmbdrug().getSelectedIndex() != 0) {
            for (Transaction T : model.getdrugcode(form.getCmbdrug().getSelectedItem().toString())) {
                form.getTxtcddrug().setText(String.valueOf(T.getCddrug()));
            }
        }
    }

// To call getdrugname method from model file
    public void displaydrugname() {
        for (Transaction T : model.getdrugname(Integer.parseInt(form.getTxtcddrug().getText()))) {
            form.getCmbdrug().setSelectedItem(T.getNmdrug());
        }
    }

部分交易表格的图片:
Picture of part of my transaction form。 我只需要确切的一句话,就是从组合框中选择药品名称后,所有相关数据都提取为另一种形式,即价格形式,库存形式,数量和药品代码。但是组合框未显示药物名称。 图片注释,在Bahasa中表示抱歉,(1)Nama Obat =药品名称,(2)Atau masukan kode obat pada格式为“ Kode Obat” =或将药品代码输入“ Drug Code”形式,(3)Pilih Obat =选择药品,(4)Kode Obat =药品代码,(5)Harga =价格,(6)数量=数量,(7)Stok =库存

0 个答案:

没有答案