繁体   English   中英

System.ArgumentOutOfRangeException:索引超出范围

[英]System.ArgumentOutOfRangeException: Index was out of range

我的代码有另一个问题(ARGGGH!),我正在调用request.querystring,并且得到以下错误索引超出范围。 必须为非负数并且小于集合的大小。 参数名称:索引

public void getAccountRef()
{
    string getAccountRef = (string)Request.QueryString["AccountRef"].ToString();

    SqlDataSource1.SelectParameters[0].DefaultValue = getAccountRef;
}

有什么想法吗? 我正在尝试解析将要格式化为REDIT1的帐户ref

干杯

贾斯汀

我敢打赌SqlDataSource1没有设置参数,因此您尝试访问第一个(项目0)的尝试失败,因为索引必须在0到Count-1的范围内(在这种情况下,这不能满足任何要求)。 您需要添加参数。

另请注意:

string getAccountRef = (string)Request.QueryString["AccountRef"].ToString()

是双重冗余。 无需将.ToString()的结果.ToString()为字符串,因为ToString()始终返回字符串。

也不需要在Request.Querystring[fieldName]的结果上调用它,因为它也总是返回一个字符串。 以下内容就足够了:

string getAccountRef = Request.QueryString["AccountRef"];

我知道了! 我的SQLDataSource中没有设置参数!

<SelectParameters>
    <asp:Parameter DefaultValue="1" Name="AccountRef" Type="String" />
</SelectParameters>

多谢你们

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM