1

会社のテーブルから行をフェッチしてJComboBoxに挿入するコードがあります。

APPをデバッグモードで実行すると、結果セットにデータが入力されます。しかし、通常の実行では、結果セットは空です!

私はNetbeans IDE 7.0.1開発とphpmyadminmysqlデータベースのバージョンに使用してい5.1.37ます。

以下は私のコードです:

       boolean isvalue = false; // variable to identify if the company name found or not.
        ResultSet rs = null;
        try {
            st = con.createStatement();
            if(con == null) {
                logger.error("Database Connection Not available.");
                throw new NullPointerException();
            }
            //Set the company name to combo box
            rs = st.executeQuery("Select comp_name from company");
            while (rs.next()) {
                comboCompanyName.addItem(rs.getString("comp_name"));
                isvalue = true; //Set true if found
            }
        } catch (SQLException ex) {
            System.out.println("SQLError found while updating information." + ex.getMessage());
        } catch (Exception ex) {
           System.out.println("Error found while updating information." + ex.getMessage());
        }
        if (!isvalue) //Check company information available
        {
            JOptionPane.showMessageDialog(null, "System could not found any company information.", "Error", JOptionPane.WARNING_MESSAGE);
        }

これから私を助けてください。前もって感謝します。

4

2 に答える 2

0

isvalue変数を使用する代わりに、次のことを試すことができます。

PreparedStatement statement = con.prepareStatement("SELECT comp_name FROM company");
  ResultSet result = statement.executeQuery();
    int i=0;
    while (result.next()) {                         
      jComboBox1.addItem(result.getString(1));
        i++;
       }
     if(i==0){
    JOptionPane.showMessageDialog(null, "System could not found any company information.", "Error",JOptionPane.WARNING_MESSAGE);
   }
于 2012-12-28T11:49:11.643 に答える
0

問題を見つけました。

接続による問題が正しく閉じられません。つまり、以前の接続が正しく閉じられておらず、静的接続オブジェクトを使用しました。

于 2013-03-18T11:35:41.643 に答える