import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.event.*;
public class jc extends JFrame implements ActionListener{
String id,age,name,password;
String url="jdbc:odbc:student";
int money;
   static String  s="hello world!";
   JButton ok=new JButton("确定");
   JButton cancel=new JButton("取消");
   JLabel  label=new JLabel("请输入账号");
   JTextField text=new JTextField(10);
   public jc()
   {
     super("example");
     setLayout(new FlowLayout());
     //text.setEditable();
     add(ok);add(cancel);
     add(label);add(text);
     ok.addActionListener(this);
     setSize(600,600);
     setLocation(400,400);
     setVisible(true);
   }
   public void actionPerformed(ActionEvent e)
  {
  String aa=text.getText();
    if(e.getSource()==ok)
    {
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection(url,"sa","19861105");
Statement stat=conn.createStatement();
ResultSet sr=stat.executeQuery("select*from information where Id=aa");
while(sr.next())
{
id=sr.getString("ID");
name=sr.getString("Name");
age=sr.getString("Age");
password=sr.getString("Password");
money=sr.getInt("Money");
System.out.println(id+" "+name+""+age+" "+password+" "+money);
System.out.println(aa); }
conn.close();
}
catch(Exception ex){
System.out.println(ex.getMessage());
ex.printStackTrace();
}
      }
  }
  public static void main(String []args)
  {
    jc wj=new jc();
  }
}

解决方案 »

  1.   

    没有报错!是正确的,但不能输出结果!我的数据库里面有个id=12345,如果我写Id=12345,能输出正确结果!但是如果我在文本框里输入12345,通过aa=text.getText(),然后在Id=aa,就不能输出正确结果了,发生异常。
    如下:
    [Microsoft][ODBC SQL Server Driver][SQL Server]列名 'aa' 无效。
    java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]列名 'aa'
    无效。
            at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
            at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
            at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
            at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
            at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:2
    53)
            at jc.actionPerformed(jc.java:43)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:19
    95)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav
    a:2318)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
    .java:377)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:232
    )
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
    istener.java:236)
            at java.awt.Component.processMouseEvent(Component.java:5999)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3240)
            at java.awt.Component.processEvent(Component.java:5764)
            at java.awt.Container.processEvent(Container.java:1984)
            at java.awt.Component.dispatchEventImpl(Component.java:4407)
            at java.awt.Container.dispatchEventImpl(Container.java:2042)
            at java.awt.Component.dispatchEvent(Component.java:4237)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4248
    )
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3912)        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3842)
            at java.awt.Container.dispatchEventImpl(Container.java:2028)
            at java.awt.Window.dispatchEventImpl(Window.java:2405)
            at java.awt.Component.dispatchEvent(Component.java:4237)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:600)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
    ad.java:273)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
    java:183)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
    ad.java:173)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)拜托了!
      

  2.   

    你的id应该是字符类型的吧
    那你就应该这样stat.executeQuery("select*from information where Id= 'aa' "); 
      

  3.   

    你的aa是数字型的,修改如下.
    stat.executeQuery("select*from information where Id= " + aa); 建议在编辑SQL文的时候,使用StringBuffer进行append,最后用toString方法输出最终的SQL文.