0

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

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

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

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

干杯

贾斯汀

4

2 回答 2

1

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

另请注意:

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

是双重冗余的。无需将结果.ToString()转换为字符串,因为ToString()总是返回一个字符串。

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

string getAccountRef = Request.QueryString["AccountRef"];
于 2011-03-28T16:02:05.710 回答
0

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

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

多谢你们

于 2011-03-28T15:49:51.907 回答