IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Error : Object must implement IConvertible.


Sujet :

ASP.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Error : Object must implement IConvertible.
    Bonjour à tous,

    J'obtiens toujours l'erreur suivante (Object must implement IConvertible. ) et je me demandais si vous pouviez m'aider.

    Je souhaite appeler une méthode delete depuis une GridView (qui tire sa source de donné d'un object data source).

    Mon code marche, l'entrée est bien supprimé de la base de donnée ! mais j'ai une page d'erreur qui s'affiche à la fin au lieu de revenir sur la page de départ.

    Voilà la méthode appelée dans DeleteRow

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
            {
     
     
                int index = e.RowIndex;
     
     
                String convID = GridView1.Rows[index].Cells[1].Text ;
     
                Parameter p = new Parameter("IDconversation", TypeCode.String);
                p.DefaultValue = convID;
     
                ObjectDataSourceGetMyMessages.DeleteParameters.Add(p);
     
                ObjectDataSourceGetMyMessages.Delete();
     
     
     
            }
    Voilà la méthode Delete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
     public void DeleteConversation(String IDconversation)
            {
     
                try
                {
     
                    string connectionString = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString;
     
                    using (SqlConnection cn = new SqlConnection(connectionString))
                    {
     
     
                        String query = "DELETE FROM Conversation WHERE IDconversation = @idConv";
     
                        SqlCommand cmd = new SqlCommand(query, cn);
     
                        SqlParameter p = new SqlParameter("@idConv",SqlDbType.UniqueIdentifier);
                        p.Value = new Guid(IDconversation);
     
     
                        cmd.Parameters.Add(p);
     
                        cn.Open();
                        cmd.ExecuteNonQuery();
                        cn.Close();
     
     
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

    Je passe en paramètre juste l'ID d'une conversation (la clé primaire que je souhaite supprimer).



    Merci d'avance pour vos réponses

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bonjour

    Quelle ligne lève l'exception ?

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Hello et merci de ta réponse,

    Justement en mode déboguage, c'est un peu bizarre, les deux méthodes vont "jusqu'au bout" et l'erreur n'est pas capté par mon try, catch ... elle est pas arrêter et il m'affiche directement la page d'erreur dans mon navigateur...

    En modifiant un peu mon code je suis tombé là dessus, je pense que le problème vient du SQLParameter :

    Si je change pour le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     Guid id = new Guid(IDconversation);
     
                        SqlParameter p = new SqlParameter("@idConv", SqlDbType.UniqueIdentifier).Value = id;
    Je me retrouve avec un erreur me disant :

    Impossible de convertir implicitement le type 'Object' en 'System.data.SQLclient.SqlParameter'.Une conversion explicite existe (un cast est-il manquant ?)

    Il faudrait donc que je modifie mon paramètre sql...

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    J'ai trouvé mon erreur il suffit de préciser que le paramètre était de type Object et non pas String,

    Voilà mon code si ça peut en aider d'autres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
     
       protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
            {
     
     
                int index = e.RowIndex;
     
     
                String convID = GridView1.Rows[index].Cells[1].Text ;
     
                Parameter p = new Parameter("IDconversation", TypeCode.Object);
                p.DefaultValue = convID;
     
                ObjectDataSourceGetMyMessages.DeleteParameters.Add(p);
     
                ObjectDataSourceGetMyMessages.Delete();
     
     
     
            }
    Et pour la méthode Delete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
       public void DeleteConversation(Guid IDconversation)
            {
     
                try
                {
     
                    string connectionString = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString;
     
                    using (SqlConnection cn = new SqlConnection(connectionString))
                    {
     
     
                        String query = "DELETE FROM Conversation WHERE IDconversation = @idConv";
     
                        SqlCommand cmd = new SqlCommand(query, cn);
     
     
                        cmd.Parameters.Add("@idConv", SqlDbType.UniqueIdentifier).Value = IDconversation;
     
     
     
                        cn.Open();
                        cmd.ExecuteNonQuery();
                        cn.Close();
     
     
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

    Merci encore et à bientôt sur nos claviers

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Tazmani05 Voir le message
    Si je change pour le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     Guid id = new Guid(IDconversation);
     
                        SqlParameter p = new SqlParameter("@idConv", SqlDbType.UniqueIdentifier).Value = id;
    Je me retrouve avec un erreur me disant :

    Impossible de convertir implicitement le type 'Object' en 'System.data.SQLclient.SqlParameter'.Une conversion explicite existe (un cast est-il manquant ?)

    Il faudrait donc que je modifie mon paramètre sql...
    Il faudrait déjà écrire du code qui se compile syntaxiquement; ta ligne au dessus ne peut pas se compiler.

    Il est impossible qu'elle ait pu être exécutée.

    La ligne correcte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    			SqlParameter p = new SqlParameter("@idConv", SqlDbType.UniqueIdentifier);
    			p.Value = id;

    Par ailleurs, ton handler d'exception ne sert à rien, puisqu'il relance l'exception.

    Test ton code dans un programme console pour voir avant de tester sur browser.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

Discussions similaires

  1. PyNoAppError: The wx.App object must be created first!
    Par vega95 dans le forum wxPython
    Réponses: 5
    Dernier message: 23/11/2008, 19h47
  2. soucis Catchable fatal error: Object of class stdClass
    Par nimbus_77 dans le forum Langage
    Réponses: 2
    Dernier message: 24/06/2008, 09h45
  3. [Objective-C] Implementation de la classe List
    Par Ceylo dans le forum Objective-C
    Réponses: 13
    Dernier message: 01/07/2007, 19h39
  4. java.lang.Error: Graphics2D not implemented
    Par vinzzzz dans le forum 2D
    Réponses: 4
    Dernier message: 07/06/2007, 11h50
  5. Apparition Error : Object Required lors de l'intégration de mon outil
    Par Davboc dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 22/05/2006, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo