r = stm.executeQuery("select 宿舍楼号,宿舍号,姓名,性别 ,空缺人数 from 宿舍查询 where 姓名= '"+txt.getText()+"'"); } else if((!(txt.getText().equals("")))&& box.getSelectedItem().equals("性别")){
r = stm.executeQuery("select 宿舍楼号,宿舍号,姓名,空缺人数 from 宿舍查询 where 性别= '"+txt.getText()+"'"); } else if((!(txt.getText().equals("")))&& box.getSelectedItem().equals("空缺人数")) { r = stm.executeQuery("select 宿舍楼号,宿舍号,空缺人数 from 宿舍查询 where 空缺人数= '"+txt.getText()+"'");
}
int columnCount =r.getMetaData().getColumnCount();
import java.sql.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;import javax.swing.*;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
public class dormitory_Inquire extends JFrame implements ActionListener{
Vector rowVectors=new Vector();;
Vector columnHeaderVector=new Vector();
JButton b1,b2;
JTextField txt;
JComboBox box;
JTable table;
JScrollPane p1 = new JScrollPane();
boolean flag = false;
String s_id;
int astu_id;
DefaultTableModel tableModel=new DefaultTableModel ( );
dormitory_Inquire f;
ResultSet r;
Connection conn;
Statement stm;
//构造方法
dormitory_Inquire()
{ super("宿舍查询");
setLayout(null);
setSize(1080,540);
setResizable(false);
setVisible(true);
txt = new JTextField(50);
add(txt);
txt.setBounds(320, 20, 250, 25);
box = new JComboBox();
add(box);
box.setBounds(580, 20, 90, 25);
box.addItem("宿舍楼号");
box.addItem("宿舍号");
box.addItem("姓名");
box.addItem("性别");
box.addItem("空缺人数");
b1 = new JButton("确定");
add(b1);
b1.setBounds(380, 50, 70, 25);
b1.addActionListener(this);
b2 = new JButton("取消");//取消按钮的监听
add(b2);
b2.setBounds(480, 50, 70, 25);
b2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String cmd=e.getActionCommand();
if(cmd.equals("取消"))
txt.setText("");
}
});
//表
String[ ]columnHeaderVector = {""};
table = new JTable();
JScrollPane srp = new JScrollPane(table);
srp.setBounds(0, 80, 1080,500);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
add(srp);
table.setModel(tableModel);
tableModel.setColumnIdentifiers(columnHeaderVector);
for(int i=0;i<table.getColumnCount();i++){
DefaultTableColumnModel colModel = (DefaultTableColumnModel) table.getColumnModel();
TableColumn col = colModel.getColumn(i);
int width = 10; TableCellRenderer renderer = col.getHeaderRenderer();
if (renderer == null) {
renderer = table.getTableHeader().getDefaultRenderer();
}
Component comp = renderer.getTableCellRendererComponent(table, col.getHeaderValue(), false,
false, 10, 10);
width = comp.getPreferredSize().width;
col.setPreferredWidth(width+180);
}
}
public void actionPerformed(ActionEvent e){
String cmd = e.getActionCommand();
if(e.getSource() instanceof JButton){
if(cmd.equals("确定"))
{
try {
rowVectors.clear();
columnHeaderVector.clear();
check();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
}
public void check() throws SQLException
{
if(txt.getText().equals(""))
{
JOptionPane.showMessageDialog(f,"请填写查询条件");
return;
}
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){
System.out.println("加载驱动程序失败,请检查");
}
try{
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D://AccomodationControl.mdb" ;
conn = DriverManager.getConnection(url);
stm = conn.createStatement();
if((!(txt.getText().equals("")))&& box.getSelectedItem().equals("宿舍楼号"))
{
r = stm.executeQuery("select 宿舍楼号,宿舍号,姓名,性别,空缺人数 from 宿舍查询 where 宿舍楼号= '"+txt.getText()+"' ");
}
else
if((!(txt.getText().equals("")))&& box.getSelectedItem().equals("宿舍号"))
{
r = stm.executeQuery("select 宿舍楼号,姓名,性别,空缺人数 from 宿舍查询 where 宿舍号= '"+txt.getText()+"' ");
}
else
if((!(txt.getText().equals("")))&& box.getSelectedItem().equals("姓名")){
r = stm.executeQuery("select 宿舍楼号,宿舍号,姓名,性别 ,空缺人数 from 宿舍查询 where 姓名= '"+txt.getText()+"'");
}
else
if((!(txt.getText().equals("")))&& box.getSelectedItem().equals("性别")){
r = stm.executeQuery("select 宿舍楼号,宿舍号,姓名,空缺人数 from 宿舍查询 where 性别= '"+txt.getText()+"'");
}
else
if((!(txt.getText().equals("")))&& box.getSelectedItem().equals("空缺人数"))
{
r = stm.executeQuery("select 宿舍楼号,宿舍号,空缺人数 from 宿舍查询 where 空缺人数= '"+txt.getText()+"'");
}
int columnCount =r.getMetaData().getColumnCount();
Vector singleRow=new Vector();
while(r.next())
{
for(int i=0;i<columnCount;i++)
singleRow.addElement(r.getObject(i+1));
rowVectors.addElement(singleRow);
}
ResultSet rsColumns=conn.getMetaData(). getColumns(null,null,"宿舍查询",null);
while(rsColumns.next())
{
columnHeaderVector.addElement(rsColumns.getString("COLUMN_NAME"));
}
tableModel.setDataVector(rowVectors,columnHeaderVector);
stm.close();
conn.close();
}catch(SQLException ae){
JOptionPane.showMessageDialog(f,"没有此信息");
}
}
public static void main(String[] args){
new dormitory_Inquire();
}
}
这是代码 查询宿舍号那里和空缺人数那里无法查询