发新话题

请大家看看这段代码 不知那错误了

import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 class QueryDB {
public static void main(String[] args){
JFrame myframe=new QueryFrame();
myframe.setVisible(true);
}}
class QueryFrame extends JFrame implements ActionListener{
private Connection con=null;
private Statement stmt=null;
private ResultSet rs=null;
private JLabel conditionLabel=new JLabel("请填写下列查询条件",SwingConstants.CENTER);
private JLabel namelabel=new JLabel("姓名",SwingConstants.RIGHT);
private JTextField name=new JTextField(8);//文本组件 用于单行输入的文本域
private JLabel sexlabel=new JLabel("性别",SwingConstants.RIGHT);
private JTextField sex=new JTextField(3);//文本组件 用于单行输入的文本域
private JLabel agelabel=new JLabel("年龄",SwingConstants.RIGHT);
private JTextField age=new JTextField(3);//文本组件 用于单行输入的文本域
private JLabel majorlabel=new JLabel("专业",SwingConstants.RIGHT);
private JTextField major=new JTextField(10);//文本组件 用于单行输入的文本域
private JButton commit=new JButton("递交");//按钮 创建一个带文字的按钮
private JTextArea resultarea=new JTextArea(10,28);//用于多行输入的文本区
private String command=null;
public QueryFrame(){
setTitle("数据库查询");
setSize(500,260);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
getContentPane().setLayout(new GridBagLayout());
JPanel jp_1=new JPanel();
jp_1.add(namelabel);jp_1.add(name);
jp_1.add(sexlabel);jp_1.add(sex);
jp_1.add(agelabel);jp_1.add(age);
jp_1.add(majorlabel);jp_1.add(major);
JPanel jp_2=new JPanel();
jp_2.setLayout(new BorderLayout());
jp_2.add("North",conditionLabel);
jp_2.add("Center",jp_1);
jp_2.add("East",commit);
JPanel jp_3=new JPanel();
jp_3.setLayout(new BorderLayout());
jp_3.add("North",jp_2);
jp_3.add("Center",new JScrollPane(resultarea));
add(jp_3);
resultarea.setEditable(false);
resultarea.setLineWrap(true);
commit.addActionListener(this);
try{
DriverManager.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver());
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://BOJONEXP-6C134A:1433;", "sa","5166975");
stmt=con.createStatement();


}catch(Exception ex)
{
resultarea.append(ex.getMessage()+"\n");
return;
} }
public void actionPerformed(ActionEvent evt){
try {String namevalue=name.getText().trim();
String sexvalue=sex.getText().trim();
String agevalue=major.getText().trim();
String sname,ssex,sage,smajor;
sname="LIKE'%"+namevalue+"%'";
ssex="LIKE'"+sexvalue+"%'";
if(agevalue.equals(""))
sage="between 15 and 35";
else
sage="="+agevalue;
smajor="LIKE'%"+major+"%'";
command="select * from student where name"+sname+"and sex"+ssex+"and age"+sage+"and major"+smajor;
rs=stmt.executeQuery(command);
resultarea.setText("");
if(!rs.next()){
resultarea.setText("找不到符合的此条件的记录");
}else {
do{
String rename=rs.getString("name");
                String resex=rs.getString("sex");
                String reage=rs.getString("age");
                String remajor=rs.getString("major");
                resultarea.append(rename);
                resultarea.append(resex+" ");
                resultarea.append(reage+" ");
                resultarea.append(remajor+"\n");
       }while(rs.next());
}catch(Exception ex){
resultarea.append(ex.getMessage()+"\n");
}}}




编辑 回复 快速回复 TOP
如果你以后到任何地方提问,光贴代码,不描述问题的现象,我想你会到处碰壁。

不是我不想帮你。
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP
没有几个人上网,还自带一个编译器和编辑器,然后复制你的代码,然后替你运行。

你这样做太不尊重别人的时间和生命了,所以。。。。 没有多少人会愿意替你做
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP
        } while (rs.next());
      } // 这里你少了一个大括号
    } catch (Exception ex) {
      resultarea.append(ex.getMessage() + "\n");
    }

你少了一个大括号
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP
以后贴代码 不是用代码模式的 就直接进行处理吧...
http://hi.baidu.com/yangwen_yw
编辑 回复 快速回复 TOP
谢谢老紫竹大哥提醒啊 我以后会注意提问的方式的
可是代码改了以后还是不行
运行后如下图
和我希望的不一样 没有实现,性别,年龄,专业这些标签
帮忙再看看吧
(jp_1面板包括姓名,性别,年龄专业对应的书签和文本框,jp_1采用FloweLayout布局;jp_2包含jp_1面板,递交,查询条件标签,采用BorderLayout布局;最后jp_3面板包含jp_2面板和结果显示文本框,采用BorderLayout布局 )
编辑 回复 快速回复 TOP
老紫竹真细心啊少了个括号都看出来啊
编辑 回复 快速回复 TOP
佩服,老紫竹是怎么学习的,记住着多东西
编辑 回复 快速回复 TOP
发新话题