SQL语句如下:
sqlstr="insert into book(bookname,bookwriter,booknumber,inputdate,bookprice,bookclass)values(str2,str3,str4,str5,str6,str1)";错误提示:数据库参数不足,期望的是6但是我插入的确实是6个数据哦(str2,str3,str4,str5,str6,str1)!
数据类型都改为字符串类型了……方便!有什么错误,请指正下。给点解答~谢谢先!在线等……

解决方案 »

  1.   

    你这样是不行的啊,str2、str3这些在你的sqlstr只是字符串,而不是变量值
      

  2.   

    试试这个sqlstr="insert into book(bookname,bookwriter,booknumber,inputdate,bookprice,bookclass)values("+str2+","+str3+","+str4+","+str5+","+str6+","+str1+")";
      

  3.   

    要先看看你这SQL语句能否在查询工具中执行
      

  4.   

    /**
     * @(#)BookInput.java
     *
     *
     * @author Administrator
     * @version 1.00 2008/1/5
     */import javax.swing.*;
    import java.awt.*;
    import javax.swing.event.*;
    import java.awt.event.*;
    import java.sql.*;public class BookInput extends JFrame implements ActionListener { private  JButton btn_add,btn_clear;
    private  JLabel lb1,lb2,lb3,lb4,lb5,lb6;
    private  JFrame frame1;
    private  JFormattedTextField jft1,jft2,jft3,jft4,jft5;
    private  JComboBox jcb1;
    private  Connection con;
    private  Statement stmt;
    private String sqlstr;
        
        public void actionPerformed(ActionEvent e){
         String str1=(String)jcb1.getSelectedItem();
         try{ 
                 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
                    }catch(java.lang.ClassNotFoundException e1){ 
                     JOptionPane.showMessageDialog(this,"not fand eorr!:"+e1,"",JOptionPane.ERROR_MESSAGE); 
                    } 
        
         try{ if(e.getSource()==btn_add){ 
         if(jft1.getText().trim().equals("") || jft3.getText().trim().equals("") ||str1.equals("") ){
        
         JOptionPane.showMessageDialog(null,"bookname or booknmber or bookclass not null !");
         return;
         } else{ String str2=jft1.getText().trim();
             String str3=jft2.getText().trim();
             String str4=jft3.getText().trim();
             String str5=jft4.getText().trim();
             String str6=jft5.getText().trim();
             
             //int int1=(int)str6;
             String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=bookadmini.mdb"; 
                            con=DriverManager.getConnection(url,"user","1234"); 
             sqlstr="insert into book(bookname,bookwriter,booknumber,inputdate,bookprice,bookclass) values("+str2+","+str3+","+str4+","+str5+","+str6+","+str1+")";
             stmt=con.createStatement();
             stmt.executeUpdate(sqlstr);
                                                      
         }
             
          }
        
         }catch(Exception ex){JOptionPane.showMessageDialog(this,ex.getMessage(),"error",JOptionPane.ERROR_MESSAGE); }
          finally{   
                            try{stmt.close();}catch(Exception ex){}
                            try{con.close();}catch(Exception ex){}
                            }
          }
        
        public BookInput() {
         JFrame.setDefaultLookAndFeelDecorated(true);
            frame1=new JFrame("图书添加");
            frame1.setLayout(new GridLayout(7,2,20,20));
            lb1=new JLabel("图书名称");
            lb2=new JLabel("图书作者");
            lb3=new JLabel("图书编号");
            lb4=new JLabel("添加日期");
            lb5=new JLabel("图书价格");
            lb6=new JLabel("图书类别");
            jft1=new JFormattedTextField();
            jft2=new JFormattedTextField();
            jft3=new JFormattedTextField();
            jft4=new JFormattedTextField();
            jft5=new JFormattedTextField();
          
           String[] jcbstr={"please chang bookclass","马克思列宁主义","毛泽东思想","综合性图书","哲学","社会科学"};
           jcb1=new JComboBox(jcbstr);
           btn_add=new JButton("添加");
           btn_clear=new JButton("取消");
          
           frame1.add(lb1);
           frame1.add(jft1);
           frame1.add(lb2);
           frame1.add(jft2);
           frame1.add(lb3);
           frame1.add(jft3);
           frame1.add(lb4);
           frame1.add(jft4);
           frame1.add(lb5);
           frame1.add(jft5);
           frame1.add(lb6);
           frame1.add(jcb1);
           frame1.add(btn_add);
           frame1.add(btn_clear);
          
           btn_add.addActionListener(this);
           btn_clear.addActionListener(this);
          
           frame1.pack();
    frame1.setLocationRelativeTo(null);
    frame1.setSize(600,400);
    frame1.setVisible(true);
        }
         public static void main(String[]args)
    {
    new BookInput();
     
    }
        
    }输入数字时,可以。但是只要输入字母,就会提示参数不足!用了你那句语句~
    是何解?付全部代码。帮看看
      

  5.   


    如图片所示~又一个问题:String str1=(String)jcb1.getSelectedItem();在窗口里选择第5个或者第6个时提示的是参数不足
    而选3-4个时,是count字段不正确
      

  6.   

    哦,sorry,刚才我那个确实不太对,如果是字符串的话就得加'' 若是数字就不用加了
    int int1=(int)str6;
                            String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=bookadmini.mdb"; 
                            con=DriverManager.getConnection(url,"user","1234"); 
                            sqlstr="insert into book(bookname,bookwriter,booknumber,inputdate,bookprice,bookclass) values('"+str2+"','"+str3+"','"+str4+"','"+str5+"',"+int1+",'"+str1+"')";现在应该可以了