What are these variables...? Are they the right data type?
cmd.Parameters.AddWithValue("backlog", Txtbcklg);
cmd.Parameters.AddWithValue("academicgap", Txtacademicgap);
Off the top of my head, these look like windows controls. You need to access the 'Text' property if so and parse them to their required data types.
e.g. if the parameter for backlog is INT in the stored procedure
cmd.Parameters.AddWithValue("backlog", Convert.ToInt32(Txbcklg.Text));