0

私はc#.netサーバー側でドロップダウンリストを作成しようとしています...しかしこれは機能していません..誰かがここで何が間違っているのか知っていますか?

    string conncetionStr = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
    SqlConnection msSQLConnectoin = new SqlConnection(conncetionStr);
    SqlCommand msSQLCommand = msSQLConnectoin.CreateCommand();

    msSQLCommand.CommandText = "app_Event_Type_Select";
    msSQLConnectoin.Open();
    SqlDataReader msDataReader = msSQLCommand.ExecuteReader();

    while (msDataReader.Read())
    {
        dropDown.DataSource = msDataReader["Name"].ToString(); 
        dropDown.DataTextField = msDataReader["Name"].ToString();
        dropDown.DataValueField = msDataReader["EventTypeID"].ToString(); 
        dropDown.DataBind();

    }
4

4 に答える 4

2
string conncetionStr = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
SqlConnection msSQLConnectoin = new SqlConnection(conncetionStr);
SqlCommand msSQLCommand = msSQLConnectoin.CreateCommand();

msSQLCommand.CommandText = "app_Event_Type_Select";
msSQLConnectoin.Open();
SqlDataReader msDataReader = msSQLCommand.ExecuteReader();


dropDown.DataSource = msDataReader; 
dropDown.DataTextField = "Name";
dropDown.DataValueField = "EventTypeID"; 
dropDown.DataBind();
msSQLConnectoin.Close();
msSQLConnectoin.Dispose();

dropDown.Items.Insert(0, "--Select Name--");
}

msDataReader["Name"].ToString()データリーダー名に置き換えますmsDataReader

于 2012-08-04T05:04:48.950 に答える
1

サンプルコード:

protected void Page_Load(object sender, EventArgs e)
    {
      bindDropdownlist()
    }

public void bindDropdownlist()
    {
         SqlDataAdapter dap = new SqlDataAdapter("select colmn1,colmn2 from table", con);
         DataSet ds = new DataSet();
         dap.Fill(ds);
         DropDownList1.DataSource = ds.Tables[0];
         DropDownList1.DataTextField = "colmn1";
         DropDownList1.DataValueField = "colmn2";
         DropDownList1.DataBind();
         DropDownList1.Items.Insert(0, "..select...");
    }
于 2012-08-04T07:01:37.193 に答える
0

ここを読むプロパティは、コントロールをバインドする必要 のDataSourceあるすべての情報を含むオブジェクトで設定されることになっています。およびは、オブジェクトの実際のデータへの参照でDataTextFieldある必要があります。目標を達成するための簡単な方法は、usingフィールドとfieldsを準備してから、次のようにコントロールをバインドすることです。DataValueFieldDataSourceDataTableTextValue

dropDown.DataSource = dt;
dropDown.DataTextField = "Text";
dropDown.DataValueField = "Value";
dropDown.DataBind();

ここmsdnWebサイトで、同じシナリオを見つけることができます。

于 2012-08-04T05:04:57.077 に答える
0

DataTextFieldとDataValueFieldは、バインドしたプロパティの文字列表現である必要があると思います。この関連記事を参照してください。

 dropDown.DataSource = msDataReader;
 dropDown.DataTextField = "Name";
 dropDown.DataValueField = "EventTypeID";
于 2012-08-04T05:05:25.173 に答える