Vous n'avez pas associé votre commande cmd avec votre SqlConnection, c'est pourquoi vous obtenez l'erreur.
Vous devez spécifier :
cmd.Connection = con;
dans votre submitdata() méthode.
Puisque SqlCommand implémente IDisposable , c'est mieux si vous l'utilisez dans un bloc comme :
using (SqlCommand cmd = new SqlCommand())
{
cmd.Parameters.Clear();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "insertdata";
cmd.Connection = con;
.... your code
}