public void AddShujuku(){
Connection con;
Statement sql;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){
System.out.println(""+e);
}
try{
String strSQL;
strSQL="insert into 用户管理 (用户名,密码) values('";
strSQL=strSQL+text1.getText().trim()+"','";
strSQL=strSQL+text2.getText().trim()+"')";

con=DriverManager.getConnection("jdbc:odbc:图书管理系统","","");
sql=con.createStatement();
sql.executeUpdate(strSQL);
JOptionPane.showMessageDialog(null,"添加成功!");
con.close();

}
catch(SQLException e1){}
}想往数据i库里插入数据,可为啥插不进去呢?

解决方案 »

  1.   

    添加不成功的话,控制台有什么输出?
    代码最后的catch(SQLException e1)部分最后写上一些代码,这样你可以获得异常的一些信息,对程序的调试也有帮助。你在前面的帖子http://community.csdn.net/Expert/topic/5486/5486683.xml?temp=.5896112不是在问吗?为何又新开一贴?呵呵BTW,你这帖子的名字有点……
      

  2.   

    try语句必须写到方法中或者static块当中。
    你把两个try块外面套上一个static{}试试看
      

  3.   

    哈哈,这个标题起的贴切!catch(SQLException e1){ e1.printStackTrace();}看看抛的什么异常,否则神仙也说不出来啊。另外对三楼的说法表示不解,楼主列的本来就是一个方法。
      

  4.   

    java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]无法将 NULL 值插入列 '标识',表 '图书管理系统.dbo.用户管理';该列不允许空值。INSERT 失败。
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
    at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111)
    at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
    at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:288)
    at bookmanagersystem.UserAdd.AddShujuku(UserAdd.java:147)
    at bookmanagersystem.UserAdd$1.mouseClicked(UserAdd.java:114)
    at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:212)
    at java.awt.Component.processMouseEvent(Component.java:5491)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
    at java.awt.Component.processEvent(Component.java:5253)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3955)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3901)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.java:2010)
    at java.awt.Window.dispatchEventImpl(Window.java:1774)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)这些是异常,我一点都看不懂啊~~说了个啥?
      

  5.   

    java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]无法将 NULL 值插入列 '标识',表 '图书管理系统.dbo.用户管理';该列不允许空值。INSERT 失败。这就是最关键的信息,是说你插入的表中有某列不允许为空值,但在插入的记录里又没给该列赋值。比如用户管理表有“用户名”、“密码”、“真实姓名”……等列,其实“真实姓名”列不允许为空,而你在插入记录的时候只插入用户名和密码(你的语句写的是只插入这两列),这样插入的时候肯定会出错。也有可能是你获得的用户名、密码其中之一为null。你在插入前输出sql语句看看,即把
    System.out.println(strSQL);
    这句话加在
    con=DriverManager.getConnection("jdbc:odbc:图书管理系统","","");
    的前面,看输出是什么?