I have this button click event. Been trying to replace the con.Close() in different lines of code, tried for hours but couldn't fix. Maybe a second pair of eyes can help?
Error: System.InvalidOperationException: 'The connection was not closed. The connection's current state is open.'
protected void Button1_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection();
    con.ConnectionString = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
    con.Open();
    string query = "SELECT CATEGORY FROM CATEGORY WHERE C_UserName = '" + Session["id"] + "'  AND  CATEGORY = '" + DropDownList1.SelectedItem.Value + "' ";
    SqlCommand cmd = new SqlCommand(query, con);
    SqlDataReader reader = cmd.ExecuteReader();
    if (reader.HasRows)
    {
        cmd.Parameters.AddWithValue("@CATEGORY", DropDownList1.SelectedItem.Value);
        lblResult.Text = "You have selected this category. Please select a new category";
        con.Close();
    }
    else
    {
        SqlCommand cmd1 = new SqlCommand("UPDATE SET CATEGORY CCID@CCID (CATEGORY, C_USERNAME, CCID) VALUES (@CATEGORY, @C_USERNAME, @CCID)", con);
        cmd1.Parameters.AddWithValue("CATEGORY", DropDownList1.SelectedItem.Value);
        cmd1.Parameters.AddWithValue("C_USERNAME", Session["id"]);
        cmd1.Parameters.AddWithValue("CCID", Label1.Text);
        con.Open();
        int i = cmd1.ExecuteNonQuery();
        con.Close();
        if (i != 0)
        {
            Label2.Text = " Your data is been saved in the database";
            Label2.ForeColor = System.Drawing.Color.ForestGreen;
        }
        else
        {
            Label2.Text = "Something went wrong with selection";
            Label2.ForeColor = System.Drawing.Color.Red;
        }
    }
}
 
     
    