0

我必须在 PageLoad 和运行时填写一些 DropDownLists。如果第一个调用它,则填充第二个 DropDownList,onSelectedItemChanged()因为我必须根据第一个 ddl 的选定值填充第二个 ddl。我从 sql 查询中获取了第二个 ddl 的数据。
这是我的代码:

private void fill_dropdown_schueler(string klasse)
{
    string query_select = "";
    SqlConnection con = new SqlConnection();
    SqlDataReader dr;
    SqlCommand select;
    ArrayList schueler = new ArrayList();

    con.ConnectionString = ConfigurationManager.ConnectionStrings["Projektwoche"].ConnectionString;

    try
    {
        if (con.State == ConnectionState.Closed)
            con.Open();

        /*** Fill DropDownList4 "Schüler" ***/
        query_select = "SELECT [Nachname], [Vorname], [Katalognummer] FROM [Projektwoche].[dbo].[Einträge] WHERE Klasse='" + klasse + "'ORDER BY [Nachname] ASC;";
        select = new SqlCommand(query_select, con);
        dr = select.ExecuteReader();
        int index = 0;
        while (dr.Read())
        {
            schueler.Add((String)dr["Nachname"] + " " + (String)dr["Vorname"] + "  Nr: " + (String)dr["Katalognummer"]);
            kata[index] = Convert.ToInt32((String)dr["Katalognummer"]);
            index++;
        }
        dr.Close();

        DropDownList4.DataSource = schueler;
        DropDownList4.DataBind();

        schueler.Clear();

        con.Close();
    }

    catch (Exception e)
    {
        Label7.Text = e.ToString();
    }
}

所以我将 的值存储Katalognummer]在全局数组中kata[],这样我就可以通过第二个 DropDownList 的索引访问它们的值(无需进行更多查询)。

如果我将数组的值kata[]放入标签中,它们就可以了,但前提是我将其Label.Text = kata[].ToString();放入此函数中。

此函数在onSelectedItemChanged第一个 ddl 的方法中调用。

如果我想kata[]在另一个函数中获取数组的值,所有值都是 0,而不是我想要从查询中获得的值。

似乎kata[]在这个函数之后数组被清除了???

4

0 回答 0