0

だからここに私の状況があります: 特定のイベントがトリガーされたときに入力する DropDownList があります。データを入力するために、ID と名前の 2 つの列を返す SQL クエリを実行します。DataSource/DataTextField/DataValueField を使用して Name を DropDownList にバインドしますが、ID も保存したいと思います (2 番目のクエリで使用するため)。これどうやってするの?

ID を非表示の入力フィールドに保存しようとしましたが、ID を使用したいがユーザーには表示したくないためです。しかし、input は ListControl ではないため、機能しません。DropDownList で選択された名前の一致する ID を取得するにはどうすればよいですか?

    string strConn = ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString;
    SqlConnection con = new SqlConnection(strConn);
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = con;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "SELECT Id, Name FROM Users WHERE Age > 10";

    DataSet objDs = new DataSet();
    SqlDataAdapter dAdapter = new SqlDataAdapter();
    dAdapter.SelectCommand = cmd;
    con.Open();
    dAdapter.Fill(objDs);
    con.Close();
    if (objDs.Tables[0].Rows.Count > 0)
    {
        NameDropDown.DataSource = objDs.Tables[0];
        NameDropDown.DataTextField = "Name";
        NameDropDown.DataValueField = "Name";
        NameDropDown.DataBind();
        NameDropDown.Items.Insert(0, "--Select--");
    }
    else
    {
        NameDropDown.Items.Clear();
        NameDropDown.Items.Insert(0, "No names found");
    }
4

1 に答える 1

1

検討:

if (objDs.Tables[0].Rows.Count > 0)
{
    NameDropDown.DataSource = objDs.Tables[0];
    NameDropDown.DataTextField = "Name";
    NameDropDown.DataValueField = "ID"; /*why wouldn't this be ID*/
    NameDropDown.DataBind();
    NameDropDown.Items.Insert(0, "--Select--");
于 2013-01-25T02:24:57.000 に答える