你的产寻字符串 query 的内容是什么啊?

解决方案 »

  1.   

    这是一个类
    java.awt.event.*;import java.awt.*;
    import javax.swing.*;
    public class logon extends JFrame{
    private JLabel jtitle,jid,jpd;
    private JButton jok,jcancel;
    private JTextField [] jt=new JTextField[2];
    private JPanel jnorth,jcenter,jsouth,jleft,jright;
    Container c;
    private toData local;
    private String [] data=new String [2];
    public boolean isok(){
    for(int i=0;i<data.length;i++){
    if(!jt[i].getText().equals("")){

    data[i]=jt[i].getText();
    }
    else 
         JOptionPane.showMessageDialog(null,"PLEASE COMPLTE THE INFORMATION","Warning",JOptionPane.WARNING_MESSAGE);
    }

    return true;
    }public String str="SELECT name FROM user WHERE name=pzw";
    public logon(){
    jt[0]=new JTextField(10);
    jt[1]=new JTextField(10);
    c=getContentPane();
    jnorth=new JPanel();
    jcenter=new JPanel();
    jsouth=new JPanel();
    jleft=new JPanel();
    jright=new JPanel();
    jtitle=new JLabel("PLEASE ENTER ID AND PASSWORD");
    jid=new JLabel("ID");
    jpd=new JLabel("PD");
    jok=new JButton("OK");
    jcancel=new JButton("CANCEL");
    GridLayout gl=new GridLayout(2,1,1,1);
    FlowLayout fl=new FlowLayout();
    jnorth.add(jtitle,BorderLayout.NORTH);
    jleft.setLayout(gl);
    jright.setLayout(gl);
    jcenter.setLayout(fl);
    jleft.add(jid);
    jleft.add(jpd);
    jright.add(jt[0]);
    jright.add(jt[1]);
    jcenter.add(jleft);
    jcenter.add(jright);
    jsouth.add(jok);
    jsouth.add(jcancel);
    c.add(jnorth,BorderLayout.NORTH);
    c.add(jcenter,BorderLayout.CENTER);
    c.add(jsouth,BorderLayout.SOUTH);
    jok.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    if(isok()){
    Thread runner=
     new Thread(){
      public void run(){
     
    local=new toData();
    local.update("INSERT INTO user(name,pd) VALUES('"+data[0]+"','"+data[1]+"')");
     
      JOptionPane.showMessageDialog(null,"YOU ENTER SUCCESS","Warning",JOptionPane.WARNING_MESSAGE);
     
      }
     };
    runner.start();
    }
    }
    });
    jcancel.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent ea){
    if(isok()){
    Thread runner=
    new Thread(){
    public void run(){
    local=new toData();
    if(local.isdouble("SELECT name FROM user WHERE name="+data[0]))
    JOptionPane.showMessageDialog(null,"YOU ENTER SUCCESS","Warning",JOptionPane.WARNING_MESSAGE);
    else
    JOptionPane.showMessageDialog(null,"YOU ENTER FALSE","Warning",JOptionPane.WARNING_MESSAGE);
    }
    };
    runner.start();
    }
    }
    });
    setSize(250,200);
    setVisible(true);
    }
    public static void main(String args[]){
    logon app=new logon();
    }
    这是另一个类
    import java.sql.*;
    public class toData{

    public void update(String query) {
             try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
             }
                catch(ClassNotFoundException ea) {
                   System.out.println(ea.toString());
                }
                catch(Exception e) {
                   System.out.println(e.toString());
                }
        
              Connection  connection = DriverManager.getConnection("jdbc:odbc:logon");
                Statement statement  = connection.createStatement();
                statement.executeUpdate(query);
                statement.close();
                connection.close();
             }
                catch(SQLException SQLe) {
                   System.out.println(SQLe.toString());
                }
          }
          public boolean isdouble(String query){
           try{
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
           }
           catch(ClassNotFoundException ea){
           System.out.println(ea.toString());
           }
           try{
           Connection connection=DriverManager.getConnection("jdbc:odbc:user");
           Statement statement=connection.createStatement();
           ResultSet result=statement.executeQuery(query);
           while(result.next()){
           return false;
           }
           result.close();
           statement.close();
           connection.close();
           }
           catch(SQLException e){
           System.out.println(e.toString());
           }
           return true;
          }
    }
    是两个类,而不是一个类!
      

  2.   

    too long to read it through
      

  3.   

    你是不是只有点CANCEL按钮才出错,点别的不出错?
      

  4.   

    首先向你确认一下。你的toData中是不是少了个  "try{ " 如下:
        try {
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        }
        catch (ClassNotFoundException ea) {
          System.out.println(ea.toString());
        }
        catch (Exception e) {
          System.out.println(e.toString());
        }
        <font color=blue>try {</font>
                          ^
          Connection connection = DriverManager.getConnection("jdbc:odbc:logon","username","password");
          Statement statement = connection.createStatement();
       如果后台打印的错误是非法的用户名/密码,那么你需要调用DriverManager.getConnection("jdbc:odbc:logon","username","password"); username/password是具有增删改查权限的数据库用户。
      如果后台打印 “[Microsoft][ODBC 驱动程序 管理器] 未发现数据源名称并且未指定默认驱动程序”,那么可能是你的ODBC源配置的不对。我发现你insert用的是logon,而select得时候用的是user,两个不一样。
       另外你的类名最好大写。下面的代码最好重构成父类,或者做成UTIL类。避免所有的业务都重写。try{
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
           }
           catch(ClassNotFoundException ea){
           System.out.println(ea.toString());
           }
           try{
           Connection connection=DriverManager.getConnection("jdbc:odbc:user");
        一些建议,仅供参考。错误请指出
      

  5.   

    现在的问题是插入数据可以,但是选择数据就会出现错误,好象是JDBC参数不足
      

  6.   

    SELECT name FROM user WHERE name="+data[0]name字段是字符传类型的话,这里语法错误了,在我印象中,一般提示参数不足都是SQL语句的问题SELECT name FROM user WHERE name='"+data[0]+"' 
      

  7.   

    我也知道是SQL语句的问题,为了测试我把语句改成
    SELECT name FROM user WHERE nam=pzw 运行后结果还是显示参数不足,期待是1
      

  8.   

    select name from user where nam='pzw'
      

  9.   

    自己顶!
    现在我又加一个按钮,是删除操作,SQL语句为
    DELETE FROM USER WHERE NAME=PZW结果还是参数不足,为什么呀?