A lo mejor no tiene nada que ver , pero prueba a cambiar esta linea:
Código:
MyCommand.CommandText = "insert into especialidades(cve_especialidades,Nombre)values(Pa ram1,Param2)";
//este comentario es para que no se corte la linea, no hagas caso
Por esta:
Código:
MyCommand.CommandText = "insert into especialidades values (Pa ram1,Param2)";
Si esto no funciona a lo mejor es que no tienes permisos para insertar y por eso te da un eror de operacion no valida.
Ya nos cuentas. Todo el codigo parece estar bien.