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

C# Discussion :

Impossible d'effectuer un cast d'un objet de DBNull en d'autres types


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2015
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Impossible d'effectuer un cast d'un objet de DBNull en d'autres types
    Bonjour les developpez.net,

    sur mon projet de fin d'étude, j'ai travaillé avec BindingManagerBase.
    j'ai essayé de faire un double travail pour le bouton Ajouter (btnAjouter) ajouter et enregistrer, lorsque je clique sur ajouter ça va vider les champs et changer
    ajouter à enregistrer.
    Alors le problème est quand je clique sur ajouter tout va bien, je saisie, et quand je fais enregistrer il me donne l'erreur "Impossible d'effectuer un cast d'un objet de DBNull en d'autres types" au niveau de la ligne 4 ( int id = Convert.ToInt32(dt.Rows[dt.Rows.Count - 1][0]) + 1; )

    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
    private void btnAjouter_Click(object sender, EventArgs e)
            {
                if (state == "Ajouter")
                {
                    bmb.AddNew();        // vider les textbox et préparer un enregistrement vide dans DataTable pour le remplir et sauvegarder dans un datagridview.
                    int id = Convert.ToInt32(dt.Rows[dt.Rows.Count - 1][0]) + 1;        //me pointer sur le nouveau champ crée n+1  pour le remplir (datagridview).
                    txtID.Text = id.ToString();         // champ qui s'incrémente automatiquement (clé primaire).
                    txtDes.Focus();
                    btnAjouter.Text = "Enregistrer";
                }
                else
                {
                    bmb.EndCurrentEdit();
                    cmdb = new SqlCommandBuilder(da);
                    da.Update(dt);
                    btnAjouter.Text = "Ajouter";
     
                }
    s'il vous plait aidez moi j'en ai besoin pour mon projet fin d'étude et merci d'avance.
    Nom : 1.jpg
Affichages : 1225
Taille : 224,1 Ko

  2. #2
    Membre confirmé Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    337
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 337
    Points : 458
    Points
    458
    Par défaut
    Bonjour,

    L'exception est explicite, tu ne peux pas convertir une valeur null en quoi que ce soit.

    Concrètement, lorsque tu écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dt.Rows[dt.Rows.Count - 1][0]
    Tu dis : Je veux le contenu de la colonne 0 se trouvant dans la dernière ligne de ma table. L'exception levée indique concrètement que cette colonne est vide (valeur DBNull), donc tu ne peux pas convertir du vide en entier.

    Par hasard, regarde ce qui se passe dans la fonction appelée par Je suppose que dans celle ci, tu ne remplis pas la dernière ligne de ta datatable.
    Tant va la cruche à l'eau qu'à la fin y'a plus d'eau.

Discussions similaires

  1. Réponses: 21
    Dernier message: 16/09/2013, 22h00
  2. Réponses: 4
    Dernier message: 10/05/2011, 11h55
  3. Réponses: 7
    Dernier message: 26/04/2011, 18h00
  4. Réponses: 0
    Dernier message: 13/03/2010, 10h25
  5. Réponses: 2
    Dernier message: 06/03/2007, 19h38

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