zoukankan      html  css  js  c++  java
  • com.microsoft.sqlserver.jdbc.SQLServerException: 索引 7 超出范围。

    今天在做项目的时候,使用的jdbc底层增加,然后出现了个问题,找了好久没有找出来是什么问题,后来在网上查了下,发现别人都说是?写成了中文的了,于是我就返回来看,没看出来,继续找,前前后后折腾了估计有半小时还是找不出来,所有的问题都排除了,又回到了?上,难道真的是我写成了中文的了吗,重新切换输入法输入?的时候发现果然是这里的错,?写成了中文的了,大家以后一定得仔细点,别走我的老路了!下面的代码:
    错误的代码:

    public int addAccount(Account account) {
            int rel=0;
            String sql="insert INTO account(name,types,items_id,property_id,money,create_date,bz) " +
                    "VALUES(?,?,?,?,?,?,?)";
            List<Object>prams=new ArrayList<Object>();
            prams.add(account.getName());
            prams.add(account.getTypes());
            prams.add(account.getItem_id());
            prams.add(account.getProperty_id());
            prams.add(account.getMoney());
            prams.add(account.getCreate_date());
            prams.add(account.getBz());
            System.out.println(sql);
            try {
                rel=connDbBean.executeUpdate(sql, prams);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                connDbBean.closeAll();
            }
            return rel;
        }

    正确的代码:

        public int addAccount(Account account) {
            int rel=0;
            String sql="insert INTO account(name,types,items_id,property_id,money,create_date,bz) " +
                    "VALUES(?,?,?,?,?,?,?)";
            List<Object>prams=new ArrayList<Object>();
            prams.add(account.getName());
            prams.add(account.getTypes());
            prams.add(account.getItem_id());
            prams.add(account.getProperty_id());
            prams.add(account.getMoney());
            prams.add(account.getCreate_date());
            prams.add(account.getBz());
            System.out.println(sql);
            try {
                rel=connDbBean.executeUpdate(sql, prams);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                connDbBean.closeAll();
            }
            return rel;
        }

    他两的区别就在于sql语句中的问号,前者是中文输入法下的问号,后者是英文输入法下的问号,虽然看起来区别不是很大,但是程序是会报错的!
    这里写图片描述

  • 相关阅读:
    淘宝的高级商业阶段
    大淘宝的终极商业阶段
    淘宝的中级商业阶段
    淘宝的初级商业阶段
    BAM部署失败 未能加载”AdomdClient”或它的某一个依赖项。系统找不到指定的文件
    Step by Step WebMatrix网站开发之二:使用WebMatrix(3)
    Ext JS 4.0.1更新说明(未翻译)
    企业级系统架构的理解
    Step by Step WebMatrix网站开发之二:使用WebMatrix(2)
    四大类NoSQL数据库
  • 原文地址:https://www.cnblogs.com/a1111/p/12816026.html
Copyright © 2011-2022 走看看