2011-03-28 271 views
0

我有我的代碼(ARGGGH!)的另一個問題我有一個request.querystring,我打電話,我得到以下錯誤索引超出範圍。必須是非負數且小於集合的大小。參數名稱:索引System.ArgumentOutOfRangeException:索引超出範圍

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

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

任何想法爲什麼?我試圖解析這是會像格式化REDIT1

乾杯

賈斯汀

+1

這意味着'SqlDataSource1'沒有索引爲'0'的選擇參數 – Alex 2011-03-28 15:48:22

回答

0

我得到了它的帳戶裁判!在我的SQLDataSource中沒有設置參數!

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

感謝傢伙的

1

我敢打賭SqlDataSource1沒有參數的設定,讓您嘗試訪問第一(項目0)作爲指標必須在範圍從0到數 - 1失敗(在這種情況下沒有任何滿足)。您需要添加參數。

還要注意的是:

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

是雙重冗餘。沒有必要將.ToString()的結果轉換爲字符串,因爲ToString()總是返回一個字符串。

也不需要在Request.Querystring[fieldName]的結果上調用它,因爲它總是返回一個字符串。以下就足夠了:

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