You forgot a close bracket:
cmd = new SqlCommand("insert into info values(@name,@address,@gender,@hobby,@city,@education", con);
Should be:
cmd = new SqlCommand("insert into info values(@name,@address,@gender,@hobby,@city,@education)", con);
But it is a much, much better idea to list the fields in the INSERT statement as the code then becomes more independent of the SQL table design - your code expects the columns to be defined in a specified order - the insertion of a new field at the beginning could crash your code:
cmd = new SqlCommand("INSERT INTO info (Name, Address, Gender, Hobby, City, Education) VALUES (@name,@address,@gender,@hobby,@city,@education)", con);