It is likely the loop is going to fast for the solenoid to keep up.
delay(100) // wait for a second
First: 100 milliseconds is not second.1000 is.
it remains same even after I turn off power & have to push it to seperate.
That's probably the solenoid's fault. Seems there is enough power going to it for it to jam itself. Either lower the power or lubricate the solenoid.
The Serial.print I put in program is not printing.
Is it printing anything?