2014-01-25 3 views
0

두 테이블 (MEDICALCENTRE 및 APPOINTMENT)이 있습니다. medicalcenter 테이블의 경우 기본 키는 mcID이고 약속 테이블 기본 키는 appointmentID입니다. 둘 다이 mcID 필드가 있습니다. 드롭 다운 목록에서 데이터가 1, 3 및 4 인 MEDICALCENTRE 테이블의 데이터를 채 웁니다. 원하는 mcID를 선택한 후 제출을 클릭하면 약속 테이블 mcID로 전송됩니다. 문제는 드롭 다운 목록에서 1, 3 또는 4 중 하나를 선택했는지, 약속 테이블에서 mcID 필드의 값이 항상 1인지 여부입니다. 당신의 Page_Load 방법에서드롭 다운 목록에서 옵션을 선택할 때마다 데이터베이스의 값은 항상 1입니다.

protected void Page_Load(object sender, EventArgs e) 
    { 
     string constr = ConfigurationManager.ConnectionStrings["sacpConnectionString"].ToString(); // connection string 
     SqlConnection con = new SqlConnection(constr); 
     con.Open(); 

    SqlCommand com = new SqlCommand("select * from MEDICALCENTRE", con); // table name 
    SqlDataAdapter da = new SqlDataAdapter(com); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); // fill dataset 
    ddlMedicalCentre.DataTextField = ds.Tables[0].Columns["mcID"].ToString(); // text field name of table dispalyed in dropdown 
    ddlMedicalCentre.DataValueField = ds.Tables[0].Columns["mcID"].ToString();    // to retrive specific textfield name 
    ddlMedicalCentre.DataSource = ds.Tables[0];  //assigning datasource to the dropdownlist 
    ddlMedicalCentre.DataBind(); //binding dropdownlist 
} 



protected void btnCreate_Click(object sender, EventArgs e) 
{ 
    if (Page.IsValid) 
    { 
     using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sacpConnectionString"].ConnectionString)) 
     { 
      try 
      { 
       SqlCommand cmd = new SqlCommand(); 
       Guid guid; 
       guid = Guid.NewGuid(); 
       String strStatus = "waiting"; 
       string sql = "INSERT INTO appointment (aStatus,aDate, aTime, aContact, aHeight, aWeight, patientID, mcID)"; 
       sql += "VALUES (@aStatus, @aDate, @aTime, @aContact, @aHeight, @aWeight, @patientID, @mcID)"; 
       cmd.Parameters.AddWithValue("@aStatus", strStatus); 
       cmd.Parameters.AddWithValue("@aDate", txtDate.Value); 
       cmd.Parameters.AddWithValue("@aTime", txtTime.Value); 
       cmd.Parameters.AddWithValue("@aContact", txtContact.Value.Trim()); 
       cmd.Parameters.AddWithValue("@aHeight", txtHeight.Value.Trim()); 
       cmd.Parameters.AddWithValue("@aWeight", txtWeight.Value.Trim()); 
       cmd.Parameters.AddWithValue("@patientID", txtpatientID.Value.Trim()); 
       cmd.Parameters.AddWithValue("@mcID", ddlMedicalCentre.SelectedValue); 

       cmd.Connection = con; 
       cmd.CommandText = sql; 
       con.Open(); 

       cmd.ExecuteNonQuery(); 

       // Session.Add("Username", txtFirstName.Value); 
       // Session.Add("Password", txtContact.Value); 
       // FormsAuthentication.SetAuthCookie(txtFirstName.Value, true); 
       Response.Redirect("../index.aspx"); 

      } 

      finally 
      { 
       con.Close(); 
      } 


     } 
    } 
} 

답변

2

당신의 방법은 첫 번째 항목

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
     string constr = ConfigurationManager.ConnectionStrings["sacpConnectionString"].ToString(); 
     SqlConnection con = new SqlConnection(constr); 
     con.Open(); 
     ...... 
    } 
} 
에 드롭 다운 목록을 재설정 모든 포스트 백에서 실행되도록 당신의 IsPostBack 속성에 대해 확인하지 않습니다
관련 문제