【发布时间】:2013-07-30 16:13:33
【问题描述】:
我正在编写一个程序,当用户使用单选按钮选择某个选项时,会分配参数和 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 的语句没有输出。这是为什么?
【问题讨论】:
-
因为你的 SQL 语句没有返回任何命中...
-
您的查询似乎没有返回任何内容(while 循环根本没有执行)。
-
你有没有抛出异常?
-
但是我的数据库正在返回值,否则......在 mysql 服务器中。
-
太好了,谢谢! getConnection 解决了它! xD