0

PageLoad と実行時にいくつかの DropDownLists を入力する必要があります。onSelectedItemChanged()最初の ddl の選択された値に応じて 2 番目の ddl を埋める必要があるため、2 番目の DropDownList が最初に呼び出された場合に埋められます。SQLクエリから2番目の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[]、2 番目の DropDownList のインデックスでそれらの値にアクセスできるようにします (さらにクエリを実行する必要はありません)。

配列の値をkata[]ラベルに入れると、それらはすべて問題ありませんが、Label.Text = kata[].ToString();この関数に入れる場合に限ります。

この関数はonSelectedItemChanged、最初の ddl のメソッドで呼び出されます。

kata[]他の関数で配列の値を取得したい場合、すべての値は 0 であり、クエリから取得した値が必要なわけではありません。

この関数の後に配列kata[]がクリアされるようです???

4

0 に答える 0