回 帖 发 新 帖 刷新版面

主题:各位高手,帮小弟看看这个SQLServer问题吧.....

各位高手们,帮小弟看看这个问题怎么解决吧,就是在用java对SQLServer数据库中插入数据出现了这个问题
下面是代码:
 public void startConnect(){
        try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
             }catch(ClassNotFoundException e){
            System.out.println("ERROR to connect SQLServer");
        }
        try{
            mf=new MainFrame();
            String text=mf.userField.getText();
            String text1=mf.passwordField.getText();
            String myString="insert into text(UName,UPassword)values('"+text+"','"+text1+"')";
            String url="jdbc:odbc:test";
            Connection con=DriverManager.getConnection(url);
            Statement s=con.createStatement();
            ResultSet rs=s.executeQuery(myString);
            rs.close();
            s.close();
            con.close();
        }catch(SQLException ex){
            ex.printStackTrace();
        }
       
    }
其中的MainFrame是一个图形界面的输入类,表单只有两行,一行是用户名,一行是密码,
我把text和text1换成一个确定的字符串就能够实现正常的插入了,可是要接受界面中输入的动态数据就不行了啊,我都不知道怎么回事了啊,数据源注册没什么问题,表格也没问题,就是不知道错在那里了,而且老是报同一个错误:
java.sql.SQLException: No ResultSet was produced
    at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:259)
    at jdbctest.Connect.startConnect(Connect.java:42)
    at jdbctest.Connect.<init>(Connect.java:26)
    at jdbctest.MainFrame.actionPerformed(MainFrame.java:83)
    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:3260)
    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)
高手们,帮帮小弟吧,感激涕淋!

回复列表 (共5个回复)

沙发

如果直接给定,如:
String myString="insert into text(UName,UPassword)values('name','password')";
能够成功的话。
试着在后台把text,text1和myString打印出来看看跟实际要输入的sql语句是否相符

如果还不行,就用传参数的方法吧

板凳

ResultSet rs=s.executeQuery(myString);这句话错误
插入用这个s.executeUpdate()它返回一个int类型的变量

3 楼

這大多是因為用 Statement 的 executeQuery 去執行 INSERT INTO 的關係,因為 executeQuery 一定要產生查詢結果的 ResultSet ,但是 INSERT INTO 並不會回傳此值,所以必須改用 executeUpdate 來做 INSERT INTO 或 UPDATE 的動作。

4 楼


请问jsp中运行SQL SERVER 2000 要哪些工具呀,我运行总连接不上?
jdbc /sp3/sp4都装上了。还是不行.

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
怎么条开1433端口呀?
急呀!

5 楼

哈哈,insert 是不返回结果集的,所以会有java.sql.SQLException: No ResultSet was produced
他只返回操作了几行,你可以改成这个:

 int num = s.executeUpdate(myString);
           
再试试吧!

我来回复

您尚未登录,请登录后再回复。点此登录或注册