数据库中,字段 :处方号  录入人  病人姓名  是否发药  是否有效  都是String类型的,日期是#2006-4-14#类型的,我用的数据库是access报错如下:java.sql.SQLException: Column not foundsql=SELECT recipe,register,dd,patient,flag,availability FROM 处方表 WHERE recipe='0001';Message:Column not found
SQLState:S0022
ERRORCode:0程序代码如下:import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;
import java.util.*;
import java.awt.Rectangle;public class chufang extends JFrame {
    JPanel contentPane;
    JLabel number = new JLabel();
    JButton search = new JButton();
    private Connection conn = null;
    private Statement stmt = null;
    private ResultSet rs = null;
    String title[]={"处方号","登记人","日期","病人姓名","是否发药","是否有效"};
    Vector vector=null;
    AbstractTableModel tm;
    JButton jButton1 = new JButton();
    JPanel leftpanel = new JPanel();
    JPanel rightpanel = new JPanel();
    GridLayout gridLayout1 = new GridLayout();
    Font myfont=new Font("宋体", Font.PLAIN, 14);
    JTextField chufID = new JTextField();
    Calendar ca=new GregorianCalendar();    public chufang() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }
    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(gridLayout1);
        setSize(new Dimension(346, 243));
        setTitle("生成处方");
        number.setFont(myfont);
        number.setBorder(null);
        number.setText("处方号:");
        number.setBounds(new Rectangle(16, 60, 56, 16));
        contentPane.setBackground(new Color(154, 201, 255));
        search.setBounds(new Rectangle(7, 164, 61, 25));
        search.setFont(myfont);
        search.setToolTipText("");
        search.setText("查找");
        search.addActionListener(new chufang_add_actionAdapter(this));
        jButton1.setBounds(new Rectangle(89, 164, 61, 25));
        jButton1.setFont(myfont);
        jButton1.setText("完成");
        leftpanel.setLayout(null);
        leftpanel.setBorder(BorderFactory.createEtchedBorder());
        chufID.setBounds(new Rectangle(75, 59, 81, 22));
        leftpanel.add(search);
        leftpanel.add(jButton1);
        leftpanel.add(number);
        leftpanel.add(chufID);
        contentPane.add(leftpanel);
        contentPane.add(rightpanel);
        createtable();
    }    void createtable()
    {
        JTable table =null;
        JScrollPane jScrollPane1 = new JScrollPane();
        vector=new Vector();
        tm=new AbstractTableModel(){
            public int getColumnCount()
            {
                return title.length;
            }
          public int getRowCount()
          {
              return vector.size();
          }
          public Object getValueAt(int row,int column)
          {
              if(!vector.isEmpty())
              {
                  return ((Vector)vector.elementAt(row)).elementAt(column);
              }
              else
              {
                  return null;
              }
          }
          public void setValueAt(Object value,int row,int column){   }
          public String getColumnName(int column)
          {
              return title[column];
          }
          public Class getColumnClass(int c)
          {
              return getValueAt(0,c).getClass();
          }
          public boolean isCellEditable(int row,int column)
          {
              return false;
          }
        };
        table=new JTable(tm);
        table.setToolTipText("Display Query Result");
        table.setAutoResizeMode(table.AUTO_RESIZE_OFF);
        table.setCellSelectionEnabled(false);
        table.setShowHorizontalLines(true);
        table.setShowVerticalLines(true);
        jScrollPane1.getViewport().add(table);
        rightpanel.add(jScrollPane1);
    }
    public void search_actionPerformed(ActionEvent actionEvent) {
        String sql="SELECT recipe,register,dd,patient,flag,availability FROM 处方表 WHERE recipe='"
                   +chufID.getText()+"';";
        try {
               Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
               conn = DriverManager.getConnection("jdbc:odbc:system");
               stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                           ResultSet.CONCUR_UPDATABLE);
               rs = stmt.executeQuery(sql);
               vector.removeAllElements();
               tm.fireTableStructureChanged();
               System.out.println("\nsql=" + sql);
               while(rs.next())
               {
                   Vector rec_vector=new Vector();
                   rec_vector.addElement(rs.getString("处方号"));
                   rec_vector.addElement(rs.getString("录入人"));
                   rec_vector.addElement(rs.getDate("日期"));
                   rec_vector.addElement(rs.getString("病人姓名"));
                   rec_vector.addElement(rs.getString("是否发药"));
                   rec_vector.addElement(rs.getString("是否有效"));
                   vector.addElement(rec_vector);
               }
               tm.fireTableStructureChanged();
               rs.close();
           }
           catch(ClassNotFoundException e)
           {
               e.printStackTrace();
               System.out.println("\nMessage:"+e.getMessage());
           }
           catch(SQLException ex)
           {
               ex.printStackTrace();
               System.out.println("\nMessage:"+ex.getMessage());
               System.out.println("SQLState:"+ex.getSQLState());
               System.out.println("ERRORCode:"+ex.getErrorCode());
           }
           finally{
               try
               {
                   if(stmt!=null)
                   {
                       stmt.close();
                   }
                   if(conn!=null)
                   {
                       conn.close();
                   }
               }
               catch(SQLException ex)
               {
                   ex.printStackTrace();
               }
           }
       }
}
   class chufang_add_actionAdapter implements ActionListener {
       private chufang adaptee;
       chufang_add_actionAdapter(chufang adaptee) {
           this.adaptee = adaptee;
       }
       public void actionPerformed(ActionEvent actionEvent) {
        adaptee.search_actionPerformed(actionEvent);
    }
   }不好意思,比较长。
哪位高人帮我看看,先谢过了

解决方案 »

  1.   

    rec_vector.addElement(rs.getString("处方号"));
                       rec_vector.addElement(rs.getString("录入人"));
                       rec_vector.addElement(rs.getDate("日期"));
                       rec_vector.addElement(rs.getString("病人姓名"));
                       rec_vector.addElement(rs.getString("是否发药"));
                       rec_vector.addElement(rs.getString("是否有效"));SELECT recipe,register,dd,patient,flag,availability FROM 处方表 WHERE recipe='"
                       +chufID.getText()+"你的字段到底是 处方号 还是recipe 要统一啊
    数据库表是什么就要怎么用rs.getString("recipe "));自己其余的改一下