java连接数据库查询结果不显示第一条
连接的为access数据库源代码如下:if(e.getSource()==subMenu3[0]){classidT.setText("");nameT.setText(...
连接的为access数据库源代码如下:
if (e.getSource() == subMenu3[0]) {
classidT.setText("");
nameT.setText("");
sexT.setText("");
ageT.setText("");
callT.setText("");
departmentT.setText("");
if ((classidT.getText().trim()).equals("")) {
String idclass = JOptionPane.showInputDialog("请输入年级");
String strSQL = "select * from member where classid='" +
idclass +
"'";
try {
rs = st.executeQuery(strSQL);
displayres(rs);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "查询失败");
}
} else {
String idclass = classidT.getText();
String strSQL = "select * from member where classid='" +
idclass +
"'";
try {
rs = st.executeQuery(strSQL);
displayres(rs);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "查询失败");
}
}
}
public void displayres(ResultSet rs1) throws SQLException {
//定位到达第一条记录
boolean moreRecords = rs1.next();
//如果没有记录,则提示一条消息
if (!moreRecords) {
JOptionPane.showMessageDialog(null, "无此记录");
return;
}
try {
//获取数据
getNextRow(rs1);
//刷新Table
c.validate();
}
catch (SQLException sqlex) {
sqlex.printStackTrace();
}
}
public void getNextRow(ResultSet rs2) throws
SQLException {
int count = 1;
while (rs2.next()) {
name = " 姓名:" + rs2.getString(3);
age = " 年龄:" + rs2.getString(6) + " 学校:";
department = rs2.getString(4) + "\n";
textT.append(count + "." + name + age + department);
count++;
}
}
}
查询出来的结果在文本区域内不显示第一条符合条件的,其它条正常显示,我实在找不出来了,还请帮忙。
正确的应该怎么写呢? 能正常显示我加分。getNextRow(ResultSet rs2)方法以后其它查询要调用到的嘛,如果用while(rs.next()){}如何提示无此记录呢? 展开
if (e.getSource() == subMenu3[0]) {
classidT.setText("");
nameT.setText("");
sexT.setText("");
ageT.setText("");
callT.setText("");
departmentT.setText("");
if ((classidT.getText().trim()).equals("")) {
String idclass = JOptionPane.showInputDialog("请输入年级");
String strSQL = "select * from member where classid='" +
idclass +
"'";
try {
rs = st.executeQuery(strSQL);
displayres(rs);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "查询失败");
}
} else {
String idclass = classidT.getText();
String strSQL = "select * from member where classid='" +
idclass +
"'";
try {
rs = st.executeQuery(strSQL);
displayres(rs);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "查询失败");
}
}
}
public void displayres(ResultSet rs1) throws SQLException {
//定位到达第一条记录
boolean moreRecords = rs1.next();
//如果没有记录,则提示一条消息
if (!moreRecords) {
JOptionPane.showMessageDialog(null, "无此记录");
return;
}
try {
//获取数据
getNextRow(rs1);
//刷新Table
c.validate();
}
catch (SQLException sqlex) {
sqlex.printStackTrace();
}
}
public void getNextRow(ResultSet rs2) throws
SQLException {
int count = 1;
while (rs2.next()) {
name = " 姓名:" + rs2.getString(3);
age = " 年龄:" + rs2.getString(6) + " 学校:";
department = rs2.getString(4) + "\n";
textT.append(count + "." + name + age + department);
count++;
}
}
}
查询出来的结果在文本区域内不显示第一条符合条件的,其它条正常显示,我实在找不出来了,还请帮忙。
正确的应该怎么写呢? 能正常显示我加分。getNextRow(ResultSet rs2)方法以后其它查询要调用到的嘛,如果用while(rs.next()){}如何提示无此记录呢? 展开
10个回答
展开全部
while(rs.next()){
这里直接去第一条到最后一条数据
}
这里直接去第一条到最后一条数据
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己加一句rs.fist()试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那就仔细看看第一次循环噻。。
DEBUG!
DEBUG!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SQL问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用while(rs.next()){
}
就可以了
}
就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询