La línea:
Código:
cn.ConnectionTimeout = 60
Te dice el tiempo de timeout de la conexión, o sea, el tiempo de inactividad máximo que puede tener tu conexión. 60 es muy poco... por lo que recuerdo esto se expresa en segundos, o sea, si luego de 1 minuto no hay "movimiento" en la conexión esta se cerrará (que es tu problema). Tan fácil es la solución como que incrementes este valor, pon el que estimes conveniente para completar el formulario. Yo le pondría unos 10 minutos (cambiar el 60 por 600). Nos cuentas como te fue