sql=con.createStatement();
String bname=text1.getText(),bnumber=text2.getText(),bcbs=text3.getText(),bdate=text4.getText(),bauthor=text5.getText();
int bk=Integer.parseInt(text6.getText());
String udstr="INSERT INTO books VALUES('"+bname+"','"+bnumber+"','"+bcbs+"','"+bdate+"','"+bauthor+"','"+bk+"')";
sql.executeUpdate(udstr);
本题中数据库中bdate 对应的事日期型,bk对应的是数字型,其他都是文本型的。
多谢了

解决方案 »

  1.   

    运行出错为:[Microsoft][ODBC Microsoft Access Driver] 标准表达式中数据类型不匹配。
      

  2.   

    将数字的去掉了单引号将'"+bk+"'改成"+bk+"还是不可以,知道的可不可以帮忙写一下代码。
      

  3.   

    sql=con.createStatement();
    String bname=text1.getText();
    String bnumber=text2.getText();
    String bcbs=text3.getText();
    String bdate=text4.getText();//这里我没办法帮你处理,我不知道你的文本框以什么格式接收时间的,你可以用SimpleDateFormat这个类处理获得Date类型,假如获得Date类型的 date
    String bauthor=text5.getText();
    int bk=Integer.parseInt(text6.getText());
    //String udstr="INSERT INTO books VALUES('"+bname+"','"+bnumber+"','"+bcbs+"','"+bdate+"','"+bauthor+"','"+bk+"')";
    String udstr="insert into books values(?,?,?,?,?,?)";
    PreparedStatement ps=sql.getPreparedStatement(udstr);
    ps.setString(1,bname);
    ps.setString(2,bnumber);
    ps.setString(3,bcbs);
    ps.setDate(4,date);
    ps.setString(5,bauthor);
    ps.setInt(6,bk);
    ps.execute();匆忙改了下,不知道有没问题,有问题再说..不好意思,要断网了
      

  4.   

    你先要转成时间格式才能存进去的。你直接接收过来是string类型
      

  5.   

    你先要转成时间格式才能存进去的。你直接接收过来是string类型
      

  6.   

    学会百度,string转date,百度一下
      

  7.   


    SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
            String date = "2003/01/10";
            java.util.Date utilDate = null;
            try {
              utilDate = formatter.parse(date);
            } catch (ParseException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            }