import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JApplet;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.util.*;
import java.io.*;
import javax.swing.JLabel;
import java.awt.*;
import java.io.*;
import java.applet.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.*;
//import java.beans.*;//import java.awt.Graphics;
/**
 * @(#)faminout.java
 *
 * faminout application
 *
 * @author 
 * @version 1.00 2004/8/10
 */
 
public class faminout extends JFrame
{
    JLabel   in=new JLabel("shuru"),
      out=new JLabel("zhichu"),
      left=new JLabel("jieyu"),
      date1=new JLabel("riqi"),
      indate=new JLabel("geshi:2007-6-10"),
      lincome=new JLabel("jiner"),
      inunin=new JLabel("yuan"),
      jinbeizhu=new JLabel("beizu"),
      jinbeizhushm=new JLabel("zhixianshizinei"),
      date2=new JLabel("riqi"),
      outdate=new JLabel("geshi:2007-6-10"),
      outcomodity=new JLabel("shangpinming"),
      outname=new JLabel("jinxianwuzi"),
      joutcome=new JLabel("jiner"),
      outunin=new JLabel("yuan"),
      joutbeizhu=new JLabel("beizhu"),
      joutbeizhushm=new JLabel("jinxianshizi"),
      leftout=new JLabel("yuan"),
      label=new JLabel("All Copy Right Reservered",JLabel.RIGHT);
      
      
    JTextField tindate=new JTextField(10),
        income=new JTextField(),
        inbeizhu=new JTextField(),
        
        toutdate=new JTextField(),
        outcom=new JTextField(),
        outcome=new JTextField(),
        outbeizhu=new JTextField(),
        jleft=new JTextField();
        
       
     JButton inyes=new JButton("queding"),
           outyes=new JButton("queding"),
           inform=new JButton("shouruliebiao"),
           outform=new JButton("zhichuqingdan"),
           admin=new JButton("admin"),
           user=new JButton("user"),
           incancel=new JButton("cancel"),
           outcancel=new JButton("cancel");
     
    
           
    public  faminout(String s)
    { 
     setTitle(s);
        setSize(500,500);
     JPanel cp1=new JPanel();
     admin.setBounds(250,10,70,30);             
     user.setBounds(330,10,70,30);
    
     in.setBounds(40,45,50,25);   //input table 
        date1.setBounds(70,70,50,25);
     tindate.setBounds(125,70,70,25);
     indate.setBounds(200,70,100,25);
     lincome.setBounds(320,70,50,25);
     income.setBounds(375,70,70,25);
     inunin.setBounds(450,70,40,25);
        jinbeizhu.setBounds(70,115,50,25);
     inbeizhu.setBounds(125,115,200,25);
     jinbeizhushm.setBounds(350,115,100,25);
     incancel.setBounds(190,145,50,25);
     inyes.setBounds(270,145,50,25);
    
    
     out.setBounds(40,170,50,25);    //output table
     date2.setBounds(70,195,50,25);
     toutdate.setBounds(125,195,70,25);
     outdate.setBounds(200,195,100,25);
     outcomodity.setBounds(70,235,50,25);
     outcom.setBounds(125,235,70,25);
     outname.setBounds(200,235,50,25);
     joutcome.setBounds(260,235,50,25);
     outcome.setBounds(315,235,70,25);
     outunin.setBounds(390,235,50,25);
     joutbeizhu.setBounds(70,270,50,25);
     outbeizhu.setBounds(125,270,200,25);
     joutbeizhushm.setBounds(330,270,50,25);
     outcancel.setBounds(190,305,50,25);
     outyes.setBounds(270,305,50,25);
    
        left.setBounds(40,350,50,25);   //left table
        jleft.setBounds(95,350,70,25);
        leftout.setBounds(170,350,50,25);
    
     inform.setBounds(150,415,70,25);  
     outform.setBounds(250,415,70,25);
    
     label.setBounds(350,440,100,30);
    
     cp1.add(admin);
     cp1.add(user);
     cp1.add(in);
     cp1.add(out);
     cp1.add(date1);
     cp1.add(tindate);
     cp1.add(indate);
     cp1.add(lincome);
     cp1.add(income);
     cp1.add(inunin);
     cp1.add(jinbeizhu);
     cp1.add(inbeizhu);
     cp1.add(jinbeizhushm);
     cp1.add(out);
     cp1.add(date2);
     cp1.add(toutdate);
     cp1.add(outdate);
     cp1.add(outcomodity);
     cp1.add(outcom);
     cp1.add(outname);
     cp1.add(joutcome);
     cp1.add(outcome);
     cp1.add(outunin);
     cp1.add(joutbeizhu);
     cp1.add(outbeizhu);
     cp1.add(joutbeizhushm);
     cp1.add(incancel);
     cp1.add(inyes);
     cp1.add(outcancel);
     cp1.add(outyes);
     cp1.add(left);
     cp1.add(jleft);
     cp1.add(leftout);
     cp1.add(inform);
     cp1.add(outform);
     cp1.add(label);
    
     cp1.setLayout(null);
     add(cp1);
     
         
      
    }
    void incancel_actionPerformed(ActionEvent e)
    {
     tindate.setText("");
     income.setText("");
     inbeizhu.setText("");
    }
    void inyes_actionPerformed(ActionEvent e)
    {
     //atement stmt=null;
     Connection con=null;
        Statement stmt=null; 
    String url="jdbc:odbc:person";
    try
    {
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      con=DriverManager.getConnection(url);
    stmt=con.createStatement();
    }catch(Exception a)
    {
     a.printStackTrace();
    }
     /*String ind=tindate.getText().trim();
     int inc=Integer.parseInt(income.getText().trim());
     String bz=inbeizhu.getText().trim();*/
     String sql="INSERT INTO IN VALUES('2007-5-6',100,'nihao')";
     try
     {
     stmt.executeUpdate(sql);
     }
     catch(SQLException ad)
     {
     System.out.println(ad.getMessage());
     }
    }
    
   public void inti() 
   {
   
   /* Connection con=null;
    Statement stmt=null; 
    String url="jdbc:odbc:person";
    try
    {
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      con=DriverManager.getConnection(url);
    stmt=con.createStatement();
       //stmt.executeUpdate("CREATE TABLE IN(riqi INTEGER,shouru INTEGER(10),beizhu CHAR(10))");
     stmt.executeUpdate("CREATE TABLE IN(riqi DATE,shouru INTEGER,beizhu CHAR(10))");
     stmt.executeUpdate("CREATE TABLE OUT(riqi DATE,shangpinming CHAR(5),zhichu INTEGER,beizhu CHAR(10))");
    }
    catch(ClassNotFoundException e)
{
System.out.println(e);
}
catch(SQLException e)
{
System.out.println(e);

}*/
            
    
    incancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
incancel_actionPerformed(e);
}
});
inyes.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
inyes_actionPerformed(e);
}

});
    }
     
   
   
    public static void main(String[] args) {
    
     // TODO, add your application code
     //System.out.println("Hello World!");
     //JFrame frame=new JFrame();
     faminout fam=new faminout("jiatingshouzhiguanlixitong");
     fam.inti();
        fam.setSize(500,500);
     fam.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     fam.setVisible(true);
    
    }
}程序运行,点击inyes按钮jtextfield中的数据写不进数据库,
且显示错误:[Microsoft][ODBC Microsoft Access Driver]INSERT INTO语句的语法错误请问哪位大哥给小弟解决一下呀,怎样将jtextfield中的数据写入数据库,sql语句怎么写呀??

解决方案 »

  1.   

    本人用的数据库是ACCESS,怎么没有人回答呀,真的很急呀 
      

  2.   

    String sql="INSERT INTO IN VALUES('2007-5-6',100,'nihao')";人家说你语法错误。
    你的表名 叫 “IN”错误很可能就出在 那个日期上面
    你查查资料access的日期是不是就是这么写的。
      

  3.   

    表名是不能用IN的,用的话也要用“[]”括起来,我觉得楼主的表明肯定不是IN,sql语句写错了,楼主把表结构帖上来!
      

  4.   

    IN 是关键字阿  怎么可能是表名? 还有就是 日期格式好像有问题写成'2007-05-06'或者
    todate('20070506','yyyymmdd')看看
      

  5.   

    我觉得日期格式没有问题~~~
        默认的日期格式中好像有这种日期格式~~~Stringurl="jdbc:odbc:person";
        try
        {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        con=DriverManager.getConnection(url);
       stmt=con.createStatement();
        }catch(Exception a)
        {
        a.printStackTrace();
        }url 在那里定义的阿~~~
        我怎么没有找着阿~~~
     要是在这里:Stringurl 怎么写在一起了!!!
      

  6.   

    错误一:Stringurl="jdbc:odbc:person"; 少了空格
    错误二:INSERT INTO IN VALUES('2007-5-6',100,'nihao')";语法不对
    INSERT INTO IN (字段列表)VALUES('2007-5-6',100,'nihao')";
      

  7.   

    上面的回答jingganshi大哥说的我运行出来了
       String ind=tindate.getText().trim();
        int inc=Integer.parseInt(income.getText().trim());
        String bz=inbeizhu.getText().trim();
    tindate,income,inbeizhu 都是jtextfield类型的,我现在想把填写进入tindate,income,inbeizhu的数据写进数据库,请问sql语句怎么写??
      

  8.   

    String inc =income.getText().trim();//注意数据类型,这个SQL中要String
    String SQL="INSERT INTO IN  (tindate,income,inbeizhu) VALUES(ind,inc,bz)";
    tindate,income,inbeizhu是字段名。
    多看看SQL数据库方面的书或SQL帮助文档
      

  9.   

    照你的做了,还是不行呀
    提示错误::[Microsoft][ODBC Microsoft Access Driver]参数不足,期待是3
    急,在线等!!!1
      

  10.   

    String SQL="INSERT INTO IN  (tindate,income,inbeizhu) VALUES ("+ind+","+inc+","+bz+")";