0

コードに別の問題があります (ARGGGH!) 呼び出している request.querystring があり、次のエラーIndex was out of range が表示されます。負ではなく、コレクションのサイズより小さくなければなりません。パラメータ名:インデックス

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

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

なぜ何か考えはありますか?REDIT1のようにフォーマットされるアカウント参照を解析しようとしています

乾杯

ジャスティン

4

2 に答える 2

1

SqlDataSource1 にはパラメーターが設定されていなかったので、インデックスが 0 から Count-1 の範囲内にある必要があるため、最初の (アイテム 0) にアクセスしようとすると失敗します (この場合は何も満たされません)。パラメータを追加する必要があります。

また、次の点にも注意してください。

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 に答える