package lianxi;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;import javax.swing.*;
import javax.swing.event.DocumentListener;
public class Dialog extends JFrame implements ActionListener{

   

JPanel jp1,jp2,jp3;
JLabel jl1,jl2,jl3,jl4,jl5,jl6;
JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6;
JButton jb1,jb2;
public Dialog()
{
jl1=new JLabel("学号");
jl2=new JLabel("姓名");
    jl3=new JLabel("性别");
jl4=new JLabel("年龄");
jl5=new JLabel("籍贯");
jl6=new JLabel("系别");

jtf1=new JTextField();
jtf2=new JTextField();
jtf3=new JTextField();
jtf4=new JTextField();
jtf5=new JTextField();
jtf6=new JTextField();

jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();


jp1.setLayout(new GridLayout(6,1));
jp2.setLayout(new GridLayout(6,1));
//添加组件
jp1.add(jl1);
jp1.add(jl2);
jp1.add(jl3);
jp1.add(jl4);
jp1.add(jl5);
    jp1.add(jl6);

jp2.add(jtf1);
jp2.add(jtf2);
jp2.add(jtf3);
jp2.add(jtf4);
jp2.add(jtf5);
    jp2.add(jtf6);



this.add(jp1,BorderLayout.WEST);
this.add(jp2,BorderLayout.CENTER);
this.add(jp3,BorderLayout.SOUTH);



jb1=new JButton("添加");
jb1.addActionListener(this);
jb2=new JButton("取消");

jp3.add(jb1);
jp3.add(jb2);


this.setSize(400,350);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



//连接数据库添加数据

} public static void main(String[] args) {
     Dialog dialog=new Dialog();
} public void actionPerformed(ActionEvent e)  {
Connection ct=null;
Statement  sm=null;
if(e.getSource()==jb1)
{
try
{

//1.加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.得到连接

ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=stu","sa","liangzhao");


/* sm =ct.createStatement();
String id=jtf1.getText();
String name=jtf2.getText();
String sex=jtf3.getText();
String age=jtf4.getText();
String jg=jtf5.getText();
String dept=jtf6.getText();*/


//sm.executeUpdate("insert into stud (stuId,stuName,stuSex,stuAge,stuJg,stuDept)values('id','name','sex','age','jg','dept')");


    


        this.dispose();//关闭对话框
       



}

catch(Exception e1)
{
e1.printStackTrace();
}



finally
{
if(sm!=null)
{
try {
sm.close();
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
}
if(ct!=null)
{
try {
ct.close();
} catch (SQLException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
}
}
} }
}
数据库:
create database stu
create table stud
(stuId varchar(30) primary key,
stuName nvarchar(50) not null,
stuSex nchar(4) check(stuSex in('男','女'))default '男',
stuAge int check(stuAge>1),
stuJg nvarchar(30),
stuDept nvarchar(40),)
 
insert into stud values('sp001','孙悟空','男',20,'花果山','少林派');
insert into stud values('sp002','猪八戒','男',15,'高老庄','天神');
insert into stud values('sp003','沙悟净','男',26,'流沙河','水神');
insert into stud values('sp004','唐三藏','男',21,'长安','庙里的');select * from studcom.microsoft.sqlserver.jdbc.SQLServerException: 在将 varchar 值 'age' 转换成数据类型 int 时失败。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeUpdate(Unknown Source)
at lianxi.Dialog.actionPerformed(Dialog.java:119)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

解决方案 »

  1.   

    String age=jtf4.getText();
    加上
    int age1 = Integer.parseInt(age);Insert的时候注意别加''号。不结贴的同学... 
      

  2.   

    sm =ct.createStatement();
    String id=jtf1.getText();
    String name=jtf2.getText();
    String sex=jtf3.getText();
    String age=jtf4.getText();
    String jg=jtf5.getText();
    String dept=jtf6.getText();
    sm.executeUpdate("insert into stud (stuId,stuName,stuSex,stuAge,stuJg,stuDept)values('"+id"+','"+name"+','"+sex"+',"+age+",'"+jg"+','"+dept"+')");
      

  3.   

    sm.executeUpdate("insert into stud (stuId,stuName,stuSex,stuAge,stuJg,stuDept)values('"+id+"','"+name+"','"+sex+"',"+age+",'"+jg+"','"+dept+"')");    上面的写反了。