¿Porque aparece este error sql server?

AL tratar de usar un metodo para insertar en una tabla:

public int AddPersona(Persona p) { int res;

        using (SqlConnection conexion = new SqlConnection(Conexion.Conectar()))         {             conexion.Open();              using (SqlCommand comando = new SqlCommand("INSERT INTO Persona(Nombres, Apellidos) VALUES(@Nombres, @Apellidos)", conexion))             {                 comando.Parameters.AddWithValue("@Nombres", p.Nombres);                 comando.Parameters.AddWithValue("@Apellidos", p.Apellidos);                 res = comando.ExecuteNonQuery();             }         }          return res;      } 

Me aparece este error:

Se produjo una excepción de tipo ‘System.Data.SqlClient.SqlException’ en System.Data.dll pero no se controló en el código del usuario

Información adicional: La consulta con parámetros ‘(@Nombres nvarchar(4000),@Apellidos nvarchar(4000))INSERT INTO P’ espera el parámetro ‘@Nombres’, que no se ha proporcionado.