2012-08-31 5 views
0

데이터베이스에서 채워지는 DropDownList이 있습니다.DropDownList의 선택에 따라 두 개의 TextBox 채우기

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")); 
} 

답변

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(); 
    } 
관련 문제