sql索引数组超出界限怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql索引数组超出界限怎么解决相关的知识,希望对你有一定的参考价值。

有关调用实时(JIT)调试而不是此对话框的详细信息,
请参见此消息的结尾。
************** 异常文本 **************
System.IndexOutOfRangeException: 索引超出了数组界限。
在 Microsoft.SqlServer.Management.Smo.SqlPropertyMetadataProvider.PropertyNameToIDLookupWithException(String propertyName, PropertyAccessPurpose pap)
在 Microsoft.SqlServer.Management.Smo.PropertyCollection.GetValueWithNullReplacement(String propertyName, Boolean throwOnNullValue, Boolean useDefaultOnMissingValue)
在 Microsoft.SqlServer.Management.Smo.Information.get_Edition()
在 Microsoft.SqlServer.Management.Reports.ReportContext.ProcessConnection()
在 Microsoft.SqlServer.Management.Reports.ReportContext.get_Version()
在 Microsoft.SqlServer.Management.Reports.ReportsManager.OnReportsDropDownOpening(Object sender, EventArgs e)
在 System.Windows.Forms.ToolStripDropDownItem.OnDropDownShow(EventArgs e)
在 System.Windows.Forms.ToolStripMenuItem.OnDropDownShow(EventArgs e)
在 System.Windows.Forms.ToolStripDropDownItem.ShowDropDownInternal()
在 System.Windows.Forms.ToolStripDropDownItem.ShowDropDown(Boolean mousePush)
在 System.Windows.Forms.ToolStripMenuItem.OnMenuAutoExpand()
在 System.Windows.Forms.MenuTimer.OnTick(Object sender, EventArgs e)
在 System.Windows.Forms.Timer.OnTick(EventArgs e)
在 System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** JIT 调试 **************
要启用实时(JIT)调试,
该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置
jitDebugging 值。
编译应用程序时还必须启用
调试。
例如:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
启用 JIT 调试后,任何无法处理的异常
都将被发送到在此计算机上注册的 JIT 调试器,
而不是由此对话框处理。

参考技术A 看这个异常信息没有用,在你代码中找到可能会越界的地方比如sdr[8],而sdr[8]是没有值,断点调试出来具体是哪点越界了再改就行了追问

我刚打开SQL就出这个啊。没有别的代码啊 在添加表也不显示表

数组索引超出界限项目欧拉问题17

我目前在Project Euler中遇到问题17。一点背景:我的程序适用于数字1- 120.一旦我超过120,它不按照我的意图使用模运算符。我正在尝试修复它,但是对于此问题的先前迭代,除法和余数函数正常工作,所以我试图找出导致条件错误的更改(I> = 120 && I < 1000)(Ps,不关心优化,我是一名编程学生,只是致力于创建和熟悉数组)。谢谢!

我尝试在不同的时间使用我的除法和余数运算符,例如s + = [division(I)]对(I> = 120 && I <1000)条件并且没有修复错误。

public class LetterCount {

    public static void main(String[] args) {
        int i;
        String[] ones = {"","one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten","eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", ""};
        String[] tens = {"", "","twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety", ""};
        String[] hundreds = {"","onehundred", "twohundred", "threehundred", "fourhundred", "fivehundred", "sixhunded", "sevenhundred", "eighthundred", "ninehundred"};
        String[] thousand = {"", "onethousand"};
         String s  = new String();
         for(i = 0; i <= 126; i++) {
             if(i <= 20) {
                 s+= ones[i];
             }
             if(i == 20) {
                 //performs i / 10
                 s+= tens[division(i)];
             }
             if(i > 20 && i < 100) {
                 //performs i / 10 & i % 10
                 s+= tens[division(i)];
                 s+= ones[remainder(i)];
             } if (i == 100) {
                 //performs i / 100
                 s+= hundreds[division(i)];
             } if (i > 100 && i < 120) {
                 //performs i / 10, i % 10, and i / 100
                 s+= hundreds[division(i)];
                 s+= tens[division(i)];
                 s+= ones[remainder(i)];

             } if (i >= 120 && i < 1000) {
                 //performs i / 100, i / 10, and i % 10
                s+= hundreds[division(i)];
                s+= tens[division(i)];
                s+= ones[remainder(i)];


             } if (i == 1000) {
                 s+= thousand[division(i)];
             }
         }
         System.out.println(s);
    }

    public static int remainder(int i) {
        if (i >= 100 && i <= 1000) {
            return i % 100;
        } else if(i > 10 && i < 100) {
            return i % 10;
        }
        return i;
    }
    public static int division(int i) {
        if (i == 1000) {
        return i / 1000;
        } 
        if (i >= 100 && i <= 1000) {
            return i / 100;
        } if (i < 100)  {
            return i / 10;
        }
        return i;
    }
}
答案

你的ones数组长度= 21 所以你可以访问它的最后一个元素是ones[20] 但是在你的函数remainder(int i)中,你可以返回最多99的值 因为你的方法包含这行return i % 100; 所以当你使用ones[remainder(i)];时 如果返回的提醒值> 20,您将正常面对Array Index Out of Bounds

以上是关于sql索引数组超出界限怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

ThoughtWorks.QRCode 生成QR二维码时提示“索引超出了数组界限”的原因和解决方法

索引超出了数组界限(Microsoft.SqlServer.Smo)

索引 0 超出空数组的界限,有时有效,有时无效

[Java中的“数组索引超出界限”是什么意思? [重复]

数组索引超出界限项目欧拉问题17

-[__NSArrayM objectAtIndex:]:索引 0 超出了带有 userInfo 的空数组的界限(null)