System.ArgumentOutOfRangeException:索引超出范围

时间:2011-03-28 15:45:31

标签: c# request.querystring

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

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

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

有什么想法?我正在尝试解析格式为REDIT1

的帐户ref

干杯

贾斯汀

2 个答案:

答案 0 :(得分:1)

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

另请注意:

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

双重多余。没有必要将.ToString()的结果强制转换为字符串,因为ToString()总是返回一个字符串。

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

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

答案 1 :(得分:0)

我明白了!我的SQLDataSource中没有参数设置!

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

谢谢你的