Did you
really name a column "mother's occupation"?
I am surprised that SQL server let you do that. If you did, then you will need to enclos it in '[' and ']' characters:
str = "insert into profile(rollno,fathername,occupation,contactno,mothername,[mother's occupation],annualincome,religion,caste,address,city,state)...
But also, do not concatenate strings to build a SQL command. It leaves you wide open to accidental or deliberate SQL Injection attack which can destroy your entire database. Use Parametrized queries instead.