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)!
数据类型都改为字符串类型了……方便!有什么错误,请指正下。给点解答~谢谢先!在线等……
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)!
数据类型都改为字符串类型了……方便!有什么错误,请指正下。给点解答~谢谢先!在线等……
* @(#)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();
}
}输入数字时,可以。但是只要输入字母,就会提示参数不足!用了你那句语句~
是何解?付全部代码。帮看看
如图片所示~又一个问题:String str1=(String)jcb1.getSelectedItem();在窗口里选择第5个或者第6个时提示的是参数不足
而选3-4个时,是count字段不正确
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+"')";现在应该可以了