当前位置:首页 » 编程语言 » sql索引超出范围
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql索引超出范围

发布时间: 2022-09-01 21:06:59

‘壹’ java连接到sql server2008数据库添加数据显示索引超出范围

你这段代码错误较多,主要是对数据库操作的


你的目的是想往一张表中插入数据,使用预处理SQL,即PrepareStatement


1. SQL语句错误, 插入表

Stringsql="INSERTINTO表名(字段1)values(?)";
PreparedStatementps=con.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
ps.setString(1,"name");


2. 错误原因分析

使用PrepareStatement,结合?占位符号,有几个?符号

ps.setString(1,"name"); // 1 表示第一个?, 后面的“name”表示?对应的值

如果有一张表Student,字段有4个字段: id [int]、name [varchar(50)]、age [int]、email [varchar(50)]

Stringsql="INSERTINTOStudent(id,name,age,email)values(?,?,?,?)";
PreparedStatementps=con.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
ps.setString(1,1);//对应第1个?,即SQL语句中对应的列id
ps.setString(2,"张三");//对应第2个?,即SQL语句中对应的列name
ps.setString(3,20);//对应第3个?,即SQL语句中对应的列age
ps.setString(4,"[email protected]");//对应第4个?,即SQL语句中对应的列email

因为索引,即?的顺序号是从1开始的,如使用0 或者 数量不匹配,就会出现

com.microsoft.sqlserver.jdbc.SQLServerException: 索引 1 超出范围。异常

如果你增加。如

ps.setString(5,"[email protected]"); // 没有5个?,就会出错


希望回答对你有帮助,希望及时采纳

‘贰’ 上传图片索引超出范围怎么解决

可以使用numpy和数组索引来完成此操作。
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。
数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。

‘叁’ com.microsoft.sqlserver.jdbc.SQLServerException: 索引 1 超出范围

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at y2javaee.sg.ch03.ConnectionManager.getConnection(ConnectionManager.java:21)
at y2javaee.sg.ch03.TitlesBean.getTitles(TitlesBean.java:15)
at org.apache.jsp.books_jsp._jspService(books_jsp.java:96)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
2012-3-1 15:26:22 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at y2javaee.sg.ch03.TitlesBean.getTitles(TitlesBean.java:16)
at org.apache.jsp.books_jsp._jspService(books_jsp.java:96)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)

‘肆’ java.sql.SQLException: 索引 6 超出范围.

可能你的表述字段超出范围了,你可以试试打一点字上去试试。

‘伍’ 一、索引超出范围

代码中有没有对 info 的元素进行扩充啊,从你提供的代码来看,info的元素是0个,当然不能该问了。

类中应该提供扩充 info 元素的方法。

这样改一下试试
public BlockInfo this[int index]//索引器,根据下标,返回一个BlockInfo
{

get
{
if (index < 0 || index >= info.Count)
{
throw new Exception("下标越界或不存在该元素");
}
else
{
return (BlockInfo)info[index];
}
}
}

///////你咋就不明白呢,你都不向 info 中添加元素,当然报错啦,试着加一个这个方法
public void AddBlock(BlockInfo b)
{
info.Add(b);
_length = info.Count;
}

然后在使用索引器之前选调用AddBlock 方法向里面添加元素,如:
InfoArr i=new InfoArr();
i.AddBlock(new BlockInfo()); //添加一个元素
BlockInfo b=i[0]; //访问其中的第一个元素

‘陆’ 索引超出了数组界限是什么意思

数组下标一般是从0开始的。 如果一个数组有三个元素,应该是a[0]、a[1]、a[2],如果a.Length=3,则会超出了数组的界限,因为数组中根本不存在下标为3的元素。

示例如下:

int[] score = new int[] { 89, 39, 100, 51, 94, 65, 70 };//分数

//score数组的长度为7,从零开始循环,而i<=score.Length=7就会报“索引超出了数组界限的错误,所以应该是i<score.Length

for (int i = 0; i <= score.Length; i++)

{循环语句;}

(6)sql索引超出范围扩展阅读:

数组下标变量

对于以线性寻址的向量,索引为i的元素处于位址B+c×i,其中B是固定的基底位址,c为常数,

有时称为位址增量或跨步。

如果有效的元素索引从0开始,则常数B只是数组第一个元素的位址。因此C语言指定数组的索引一定从0开始;许多开发人员会将该元素称为“第零”而不是“第一”。

然而若适当选择基底位址B,来作为第一个元素的索引起始值。譬如数组有五个元素,索引为1到5,基底位址B以B+30c来替换,则相同数组的这些元素索引将转为31到35。如果编号从0开始,则常数B可能不是任何元素的位址。

‘柒’ SQL sever中编辑表的时候,出现“未更新任何行。”错误源:mscorlib.错误信息:索引超出范围。求解。

表设计问题

‘捌’ 索引超出范围.必须为非负值并小于集合大小 什么意思,该怎么解决

贴出你报错的代码,不然不知道你错在哪,报这个错误肯定是你索引超了,比如你的list的count是5,也就是0-4,而你去list[5],这样就超出了list的索引范围