首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 速求:这条语句错了吗?PS:我正在求职上机 [已结贴,结贴人:caizhaomeng]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 13:49:39 楼主
    Java code
    Connection conn = new Database().getConn(); String sqlStr = "insert into user (name,password,email,sex,tel) values (?,?,?,?,?)"; try { PreparedStatement ps = conn.prepareStatement(sqlStr); int i=1; ps.setString(i++, user.getName()); ps.setString(i++, user.getPassword()); ps.setString(i++, user.getEmail()); ps.setInt(i++, user.getSex().intValue()); ps.setString(i++, user.getTel()); ps.executeQuery(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 13:51:381楼 得分:0
    这条语句还是这段代码?
    insert还query?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 13:54:052楼 得分:0
    这段代码,特别是INSERT
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 13:57:403楼 得分:0
    传参数的时候就出错了,把i初始为0
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 14:00:184楼 得分:0
    3楼说错了,确实是从1开始的。你看看jdbc的api。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 14:06:215楼 得分:0
    ps.executeUpdate();
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Ami121
    • 等级:
    发表于:2008-05-04 14:19:156楼 得分:5
    Connection conn = new Database().getConn();
            String sqlStr = "insert into user (name,password,email,sex,tel) values (?,?,?,?,?)";
            try {
                PreparedStatement ps = conn.prepareStatement(sqlStr);
                int i=1;
              ps.setString(i, user.getName());
                ps.setString(i++, user.getPassword());
                ps.setString(i++, user.getEmail());
                ps.setInt(i++, user.getSex().intValue());
                ps.setString(i++, user.getTel());
                ps..executeUpdate();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    修改这两处试试看
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 15:36:197楼 得分:0

    将 ps.executeQuery()改为:ps.executeUpdate()


    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 16:11:308楼 得分:5
    我觉得只须修改:将 ps.executeQuery()改为:ps.executeUpdate()
    6楼的另一个修改:
    ps.setString(i, user.getName());
    会导致ps.setString(i++, user.getPassword()); 也对i字段进行插入而出错。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 16:52:209楼 得分:0
    路过。报错吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wdbjsh
    • 等级:
    发表于:2008-05-04 17:42:5310楼 得分:5
    应该是 不报错,但是不会执行更新。。。
    将 ps.executeQuery()改为:ps.executeUpdate() 
    才有效果。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 19:15:3111楼 得分:5
    Java code
    Connection conn = new Database().getConn(); String sqlStr = "insert into user (name,password,email,sex,tel) values (?,?,?,?,?)"; try { PreparedStatement ps = conn.prepareStatement(sqlStr); int i=1; ps.setString(i++, user.getName()); ps.setString(i++, user.getPassword()); ps.setString(i++, user.getEmail()); [color=#FF0000]ps.setInt(i++, user.getSex().intValue());[/color] ps.setString(i++, user.getTel()); [color=#FF0000]ps.executeQuery();[/color] } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }



    --------------------------------------

    i++;是前进行运算再加1,在这不会出现问题.
    user.getSex().intValue():你确认这一定能转换成功吗?
    ps.executeQuery():这个是对查询操作才会用,你还是用ps.executeUpdate()或ps.execute().
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 19:52:3212楼 得分:0
    貌似将 ps.executeQuery()改为:ps.execute()  也可以
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved