0

ユーザーがラジオボタンを使用して特定の選択肢を選択すると、パラメーターとSQLステートメントが割り当てられるプログラムを作成しています:

if(r1.isSelected())//SNo
    {
        cmd="SELECT * FROM CALLDETAILS WHERE SNo=?";
        parameter=tf1.getText();

    }
    else if(r2.isSelected())//Month-wise
    {
        cmd="SELECT SNO, DATE, COMPANY,STATUS FROM CALLDETAILS WHERE MONTH(DATE)=?";
        parameter=tf1.getText();
    }
    else if(r2.isSelected())//Username
    {
        cmd="SELECT * FROM CALLDETAILS WHERE ATTENDED_BY=?";
        parameter=tf1.getText();
    }
    else if(r3.isSelected())//Company
    {
       cmd="SELECT * FROM CALLDETAILS WHERE COMPANY=?";
        parameter=tf1.getText();
    }
    else//Status
    {
        cmd="SELECT * FROM CALLDETAILS WHERE Status=?";//Resolved. in process, pending
        parameter=tf1.getText();            
    }

これを実行すると:

try
    {

        Connection con=DriverManager.getConnection("jdbc:mysql://localhost/tenderdetails?user=root&password=");
        PreparedStatement ps;
        ps=con.prepareCall(cmd);
        ps.setString(1,parameter);

        ResultSet rs=ps.executeQuery();       

        while(rs.next())
        {
            int sno=rs.getInt(1);
            Timestamp dt=rs.getTimestamp(2);           
            System.out.println(sno+ "  "+dt);//HERE!
        }

        con.close();
        System.out.println("here too");
    }

    catch(SQLException se)
    {
        JOptionPane.showMessageDialog(this, "Error: "+se.getMessage());
    }

HERE とマークされたステートメントの出力はありません。何故ですか?

4

2 に答える 2

3

あなたの発言は、必ずしもあなたが考えているとおりに設定されているとは限りません。

else if(r2.isSelected())//Month-wise   // <-- r2
{
    cmd="SELECT SNO, DATE, COMPANY,STATUS FROM CALLDETAILS WHERE MONTH(DATE)=?";
    parameter=tf1.getText();
}
else if(r2.isSelected())//Username     // <-- r2 again...? Won't ever be hit.

また、おそらくあなたの問題ではgetInt(1)ありませんgetTimestamp(2)が、SELECT *.

于 2013-07-30T16:17:22.733 に答える