Ira
Ira

Reputation: 64

prepopulated data from database on a web form textbox - On Editing the value is not captured back to database

I have a web form, which does the following.

  1. on Page init I have a dropdown that gets populated. this part works fine and its enclosed in if(!IsPostBack) {} routine. This part works fine.

  2. Now when I select a value from dropdownlist, then all of my text box fields are populated with values from database, with field grayed out from editing. This happens with in a if(IsPostBack) {} which is also fine.

  3. I have a check box, upon clicking the check box, all of the textbox fields are now available for editing. This also happens within a if (IsPostBack) {} for renabling all of the textbox fields in the routine

    protected  void performUpdate_CheckedChanged(object sender, EventArgs e)
    {
        if (performUpdate.Checked)
        {
            performDeactivate.Enabled = false;
    
            txtFirstName.Enabled = true;
            txtLastName.Enabled = true;
    
            txtContactNumber.Enabled = true;
         }  // just enabling all of the textbox fields do not worry about closing brackets.
    

Now coming to the problem, when I change the text on the textbox and click submit - which has a routine to update the database, Database is not updated. It's as though I submitted the exact same values. Except the UpdateDate field is timestamped with current time.

Here is my submit button code..

   if (IsPostBack)
       {
   using (SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["3stepMacro"].ToString()))
           {
               bldSQL = "UPDATE dbo.LoanOwnerStamp SET  FirstName =@FirstName,LastName = @LastName,ContactNumber = @ContactNumber,ContactExt= @ContactExt ,EmailAddress= @EmailAddress,Fax= @Fax, LocationCity= @LocationCity, LocationState = @LocationState,BeginWorkHrs= @BeginWorkHrs,BeginWorkTime = @BeginWorkTime,EndWorkHrs= @EndWorkHrs,EndWorkTime= @EndWorkTime,Zone= @Zone,TeamMemberLanId= @TeamMemberLanId,ManagerId= @ManagerId ,UpdatedDate= @UpdateDate WHERE  TeamMemberLanId = @TeamMemberLanId";
               //   using (SqlCommand updatetLSTeamMember = new SqlCommand("sp_UpdateTeamMemberProfile", myConnection))
               using (SqlCommand updatetLSTeamMember = new SqlCommand(bldSQL, myConnection))
               {
                   //  updatetLSTeamMember.CommandType = CommandType.StoredProcedure;
                   //   string wrokingHrs = ddlBeginHrs.SelectedValue + " " + ddlBeginTime.SelectedValue + " " + lblTo.Text + " " + ddlEndHrs.SelectedValue + " " + ddlEndTime.SelectedValue;
                   /*  updatetLSTeamMember.Parameters.Add("@FirstName", SqlDbType.VarChar, 25).Value = txtFirstName.Text;
                     updatetLSTeamMember.Parameters.Add("@LastName", SqlDbType.VarChar, 30).Value = txtLastName.Text;
                     updatetLSTeamMember.Parameters.Add("@ContactNumber", SqlDbType.VarChar, 20).Value = txtContactNumber.Text;
                     updatetLSTeamMember.Parameters.Add("@ContactExt", SqlDbType.VarChar, 20).Value = txtContactExt.Text;
                     updatetLSTeamMember.Parameters.Add("@EmailAddress", SqlDbType.VarChar, 100).Value = txtEmailAddress.Text;
                     updatetLSTeamMember.Parameters.Add("@Fax", SqlDbType.VarChar, 25).Value = txtFax.Text;
                     updatetLSTeamMember.Parameters.Add("@LocationCity", SqlDbType.VarChar, 20).Value = txtLocationCity.Text;
                     updatetLSTeamMember.Parameters.Add("@LocationState", SqlDbType.VarChar, 20).Value = txtState.Text;
                     updatetLSTeamMember.Parameters.Add("@BeginWorkHrs", SqlDbType.Int).Value = ddlBeginHrs.SelectedValue.ToString();
                     updatetLSTeamMember.Parameters.Add("@BeginWorkTime", SqlDbType.VarChar, 20).Value = ddlBeginTime.SelectedValue.ToString();
                     updatetLSTeamMember.Parameters.Add("@EndWorkHrs", SqlDbType.Int).Value = ddlEndHrs.SelectedValue.ToString();
                     updatetLSTeamMember.Parameters.Add("@EndWorkTime", SqlDbType.VarChar, 20).Value = ddlEndTime.SelectedValue.ToString();
                     updatetLSTeamMember.Parameters.Add("@Zone", SqlDbType.VarChar, 20).Value = ddlZone.SelectedItem.Text;
                     updatetLSTeamMember.Parameters.Add("@TeamMemberLanId", SqlDbType.VarChar, 20).Value = txtTeamMemberLaniId.Text;
                     updatetLSTeamMember.Parameters.Add("@ManagerId", SqlDbType.VarChar, 20).Value = gblUserId;
                     updatetLSTeamMember.Parameters.Add("@UpdateDate", SqlDbType.DateTime).Value = DateTime.Now.ToLocalTime(); */

                   updatetLSTeamMember.Parameters.AddWithValue("@FirstName", gblFirstName );
                   updatetLSTeamMember.Parameters.AddWithValue("@LastName", txtLastName.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@ContactNumber", txtContactNumber.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@ContactExt", txtContactExt.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@EmailAddress", txtEmailAddress.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@Fax", txtFax.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@LocationCity", txtLocationCity.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@LocationState", txtState.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@BeginWorkHrs", ddlBeginHrs.SelectedValue.ToString());
                   updatetLSTeamMember.Parameters.AddWithValue("@BeginWorkTime", ddlBeginTime.SelectedValue.ToString());
                   updatetLSTeamMember.Parameters.AddWithValue("@EndWorkHrs", ddlEndHrs.SelectedValue.ToString());
                   updatetLSTeamMember.Parameters.AddWithValue("@EndWorkTime", ddlEndTime.SelectedValue.ToString());
                   updatetLSTeamMember.Parameters.AddWithValue("@Zone", ddlZone.SelectedItem.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@TeamMemberLanId", txtTeamMemberLaniId.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@ManagerId", gblUserId);
                   updatetLSTeamMember.Parameters.AddWithValue("@UpdateDate", DateTime.Now.ToLocalTime());

                   updatetLSTeamMember.CommandText = bldSQL;
                   updatetLSTeamMember.CommandType = CommandType.Text;

                   // pID = updatetLSTeamMember.Parameters.Add("@return_value", SqlDbType.Int);
                   //   pID.Direction = ParameterDirection.Output;
                   try
                   {
                       if (updatetLSTeamMember.Connection.State == ConnectionState.Closed)
                       {
                           updatetLSTeamMember.Connection.Open();
                       }

                       // string idcat = updatetLSTeamMember.ExecuteNonQuery().ToString();
                       rowsAffected = updatetLSTeamMember.ExecuteNonQuery();

                       //   string idcat =    updatetLSTeamMember.Parameters["@return_value"].SqlValue.ToString();

                       if (rowsAffected == 1)
                       {
                           success = rowsAffected.ToString();
                           lblError.Text = "Successfully Updated a Team Member!";
                           lblCode.Text = success.ToString();
                           return;
                       }

                       else if (rowsAffected == 0)
                       {
                           fail = rowsAffected.ToString();
                           lblError.Text = "Team Member-No Rows Affected !!";
                           lblCode.Text = fail.ToString();
                           return;
                       }

                       /*
                                              rowsAffected = insertLSTeamMember.ExecuteNonQuery();

                                               if (rowsAffected == 1)
                                           {
                                                carryOn = rowsAffected;
                                                lblLoanStamp.Text = "Successfully Added a Manager!";
                                               lblReturnCode.Text = carryOn.ToString();
                                               return;
                                           }

                                               else if (rowsAffected == -1)
                                           {
                                               carryOn = rowsAffected;
                                               lblLoanStamp.Text = "Manager Already exists, Use Update / Deactivate for Maintenance !!";
                                               lblReturnCode.Text = carryOn.ToString();
                                               return;
                                           }  
                       */
                   } // end try

Now my concern is Page_load routine I have to have it as if(IsPostBack), because it has to query the db and pre-populate the text fields. Now my submit button never takes any of the text changes. Why is it that none of my textbox changed value is captured and submitted to the database? The form just send back everything as is with a new time stamp on the UpdateDate column. Any help is appreciated. Thanks.

Upvotes: 0

Views: 789

Answers (1)

Kevin DeVoe
Kevin DeVoe

Reputation: 602

You seem to be abusing the Page_Load, follow the following format for updating:

protected void Page_Load(object sender, EventArgs e)
{
   if (!Page.IsPostBack)
   {
      //Populate information.
   }
}

protected void chkSomething_Changed(object sender, EventArgs e)
{
   //Do checkbox stuff
}

protected void btnSomething_Clicked(object sender, EventArgs e)
{
   //Update.... You don't need to check postback here. It's a postback, you know this because you caused it.
}

Upvotes: 1

Related Questions