0

奇妙な問題が発生しています。

共通の DLL にあり、データベースから国の静的配列を返す静的メソッドがあります。

そして、この一般的な方法を使用して、国のドロップダウンを埋めようとしています。

したがって、コードは以下のようになります。

共通 - ヘルパー クラス DLL コード

public static string[] Countries()
    {

            string qry = "select * from Countries";

            Dataset result=SqlHelper.ExecDS(qry);
            countryArray = new string[100];
            //Filing country array
            return countryArray;
    }

現在のプロジェクトで

countryOptions = new string[100];
countryOptions = Common.Helper.Countries();

ドロップダウンは DS のみにバインドする必要があることはわかっていますが、彼は共通の DLL にあるため、これを変更することはできません。

しかし、今私が直面している唯一の問題は、Countries テーブルから行を削除しても、Countries 配列に効果がないことです。

Common.Helper.Countries() はまだその行を返します。行が削除されたことを再確認しましたが、その効果はありません。誰かがこれで私を助けてもらえますか??

4

3 に答える 3

0
I know Drop Down should be bind with DS only

ドロップダウンリストはとしかバインドできないという意味の場合DataSet、それは正しくありません。ASP.NETでのリストコレクション、列挙型、およびデータセットを使用したDropDownListのバインドを参照してください。

国のテーブルから行を削除すると、国の配列に効果がありません

次の行にブレークポイントを設定し、アレイにデータが入力されているかどうかを確認します。

countryOptions = Common.Helper.Countries();

dropDownList.DataBind();ドロップダウンリストを更新するために呼び出す

于 2012-05-25T10:18:34.290 に答える
0

配列をどのように埋めますか?ここでエラーが発生すると思います。

さらに、配列を 2 回初期化する必要はありません。

// Creates a 100-item-array that is never actually used, so
// this line looks unnecessary
countryOptions = new string[100];

// Creates another array on the heap, leaving above array
// to GC
countryOptions = Common.Helper.Countries();
于 2012-05-25T10:23:49.097 に答える
-1

実際の問題は、配列が静的であるため、IIS を再起動する必要があるためです。そうしないと、同じ値になります。

于 2013-08-31T12:03:57.267 に答える