Q:

Update database based on dropdownlist selection?

I have a table called SisStatus, which contains two columns "StatusID" and "Status", it contains four rows, "Normal", "Withdrawn", "Temporally Withdrawn", and "Suspended". 
I have pulled this table and displayed it into a drop down list with the following code:-
ASP.NET
      <asp:DropDownList ID="ddlStatus" runat="server">
                                    </asp:DropDownList>

C#
 private void FillDropDownList()
    {
        string connectionString = WebConfigurationManager.ConnectionStrings["scConnection"].ConnectionString;
        SqlConnection con = new SqlConnection(connectionString);
        con.Open();

        string dropDownQuery = "SELECT * FROM SisStatus";

        SqlCommand cmd = new SqlCommand(dropDownQuery, con);
        SqlDataAdapter da = new SqlDataAdapter(cmd);

        DataSet ds = new DataSet();
        da.Fill(ds);

        ddlStatus.DataTextField = ds.Tables[0].Columns["Status"].ToString();
        ddlStatus.DataValueField = ds.Tables[0].Columns["Status"].ToString();

        ddlStatus.DataSource = ds.Tables[0];
        ddlStatus.DataBind();
    }

This works fine, and the dropdown is being populated. The issue arises when I'm trying to update a different table SisStudents 'Status' column.
Below is the code I'm using to try and update it, however it does not work. The only way it works is if in the database (through me already putting it in) the status is 'Withdrawn', 'Temporally Withdrawn', 'Suspended', and you change the status to 'Normal' it works...
protected void UpdateBtnClick(object sender, EventArgs e)

{

    /**
   * When clicked takes the data the user has entered
   * and updates their row in the db
   */

    string newForename = txtForename.Text;
    string newSurname = txtSurname.Text;
    string newTermAddress = txtTermAddress.Text;
    string newHomeAddress = txtHomeAddress.Text;
    string newPhone = txtPhoneNumber.Text;
    string newDOB = txtDOB.Text;
    string newContactName = txtContactName.Text;
    string newContactAddress = txtContactAddress.Text;
    string newContactPhone = txtContactPhone.Text;
    string newStatus = ddlStatus.SelectedValue;

    if (newForename != "" && newSurname != "" && newTermAddress != "" && newHomeAddress != "" && newPhone != "" && newDOB != "" && newContactName != "" && newContactAddress != "" && newContactPhone != "")
    {

        string student = Request.QueryString["user"];

        string connectionString = WebConfigurationManager.ConnectionStrings["scConnection"].ConnectionString;
        SqlConnection con = new SqlConnection(connectionString);
        con.Open();

                 string studentDetailsQuery = "UPDATE SisStudents SET TermAddress = @TermAddress, Phone = @Phone, DOB = @DOB, HomeAddress = @HomeAddress, Status = @Status WHERE UserID = @User";

        SqlCommand cmdStudentDetails = new SqlCommand(studentDetailsQuery, con);
        cmdStudentDetails.Parameters.AddWithValue("@TermAddress", newTermAddress);
        cmdStudentDetails.Parameters.AddWithValue("@Phone", newPhone);
        cmdStudentDetails.Parameters.AddWithValue("@DOB", newDOB);
        cmdStudentDetails.Parameters.AddWithValue("@HomeAddress", newHomeAddress);
        cmdStudentDetails.Parameters.AddWithValue("@User", student);
        cmdStudentDetails.Parameters.AddWithValue("@Status", newStatus);

        cmdStudentDetails.ExecuteNonQuery();

Any help would be appreciated, as the update query is working for everything else.
Edit: There is no error, the 'Status' column is just not updated with the selected value from the DropDownList.

A:

If only status is not getting update, then i guess it might be a problem of postback.
If you are loading the dropdownlist from page load, then make sure you are calling the function inside the !Page.IsPostback like,
protected void Page_Load(object sender, EventArgs e)
{
    if(!Page.IsPostback)
    {
        FillDropDownList();
    }
}

