No has asociado tu comando cmd
con su SqlConnection, es por eso que está recibiendo el error.
Debe especificar:
cmd.Connection = con;
en su submitdata()
método.
Dado que SqlCommand implementa IDisposable , es mejor si lo usa dentro de un bloque de uso como:
using (SqlCommand cmd = new SqlCommand())
{
cmd.Parameters.Clear();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "insertdata";
cmd.Connection = con;
.... your code
}