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();

我知道 Drop Down 应该只与 DS 绑定,但由于他是常见的 DLL,我无法更改它。

但现在我面临的唯一问题是,即使从国家表中删除一行,效果也不会出现在国家数组中。

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

你如何填充数组?我认为这是发生错误的地方。

此外,您的数组不需要初始化两次:

// 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 回答