0

DropDownListデータベースからデータが取り込まれました。

でアイテムを選択するときにDropDownList、プロシージャを呼び出して、DropDownList の値を呼び出し元のプロシージャに渡し、データベースにクエリを実行していくつかのテキスト ボックスにデータを入力します。

これを行う方法?

手順のコード:

protected void PopulateTextBoxes()
{
    SqlDataReader MyReader;
    SqlConnection Conn;
    SqlParameter TourIdParam;

    string strConnection = ConfigurationManager.ConnectionStrings["ChinatowndbConnString"].ConnectionString;

    Conn = new SqlConnection(strConnection);

    SqlCommand MyCommand = new SqlCommand();

    MyCommand.CommandText = "SELECT TourId, TName, TDetails FROM Chinatowndb.dbo.Tour Where TourId = @TourIdp";
    MyCommand.CommandType = CommandType.Text;
    MyCommand.Connection = Conn;

    TourIdParam = new SqlParameter();
    TourIdParam.ParameterName = "@TourIdp";
    TourIdParam.SqlDbType = SqlDbType.Int;
    TourIdParam.Direction = ParameterDirection.Input;
    TourIdParam.Value = ddlTour.SelectedItem.Value;

    MyCommand.Parameters.Add(TourIdParam);

    MyCommand.Connection.Open();
    MyReader = MyCommand.ExecuteReader(CommandBehavior.CloseConnection);

    while (MyReader.Read())
    {
        tbTourName.Text = (string)MyReader["TName"];
        tbTourDetails.Text = (string)MyReader["TDetails"];
        lblTourId.Text = Convert.ToString(MyReader["TourId"]);
    }
}

入力するコードDropDownBox:

private void PopulateTour()
{

    DataTable dtTour = new DataTable();

    string strConnection = ConfigurationManager.ConnectionStrings["ChinatowndbConnString"].ConnectionString;

    using (SqlConnection con = new SqlConnection(strConnection))
    {

        try
        {
            SqlDataAdapter adapter = new SqlDataAdapter("SELECT TourId, TName FROM Chinatowndb.dbo.Tour", con);
            adapter.Fill(dtTour);

            ddlTour.DataSource = dtTour;
            ddlTour.DataValueField = "TourId";
            ddlTour.DataTextField = "TName";
            ddlTour.DataBind();
        }
        catch (Exception ex)
        {
            // Handle the error
        }

    }

    // Add the initial item
    ddlTour.Items.Insert(0, new ListItem("<Select Tour>", "0"));
}
4

1 に答える 1

0

HTML で選択変更のイベント ハンドラーを追加する必要があります。

<asp:DropDownList id="ddlTour"
     AutoPostBack="True"
     OnSelectedIndexChanged="ddlTour_SelectedIndexChanged"
     runat="server">

コードビハインドでイベントを処理します

  void ddlTour_SelectedIndexChanged(Object sender, EventArgs e)
  {
        // Call the method that gets the current item from the dropdown and fills the textboxes
        PopulateTextBoxes();
  }
于 2012-08-31T14:14:34.290 に答える