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 :

Erreur : String or binary data would be truncated


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut Erreur : String or binary data would be truncated
    Bonjour,

    voici mon problème. J'ai une DropDownList (= DdlCategorie) qui se charge via une DB. Les données s'affichent bien, mais lorsque je veux récupérer la valeur de l'élément sélectionné dans la liste, j'ai le message
    String or binary data would be truncated.
    J'ai essayé de Parser mais cela ne marche pas. Par contre j'arrive à récupérer dans un label la valeur de l'élément sélectionné.

    Est-ce que qqu'un a une idée?

    Merci

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
        protected void Confirmer_Click(object sender, EventArgs e)
        {
            int CodeCategorie = int.Parse(DdlCategorie.SelectedValue);
            Book NewBook = new Book(TxtIsbn.Text
                                    , TxtTitre.Text
                                    , TxtAuteur.Text
                                    , int.Parse(DdlCategorie.SelectedValue)
                                    , decimal.Parse(TxtPrix.Text)
                                    , int.Parse(TxtCD.Text)
                                    , DateTime.Parse(TxtParution.Text)
                                    , int.Parse(TxtPage.Text)
                                    );
     
            if (Page.IsValid)
            {
     
                SqlConnection myConnection = new SqlConnection();
     
     
                myConnection.ConnectionString = "Data Source=PC-LAURENCE\\SQLEXPRESS; Initial Catalog=Librarie; Integrated Security=True;";
                myConnection.Open();
     
                // Requete SQL
                SqlCommand myCommande;
                myCommande = new SqlCommand("Insert INTO Ouvrages (ISBN, Titre, Auteur, Catégorie, Prix, CD, DateParution, NbPages) VALUES('" + TxtIsbn.Text + "', '" + TxtTitre.Text + "', '" + TxtAuteur.Text + "','" + DdlCategorie.SelectedValue + "','" + decimal.Parse(TxtPrix.Text) + "', '" + int.Parse(TxtCD.Text) + "', '" + DateTime.Parse(TxtParution.Text) + "', '" + int.Parse(TxtPage.Text) + "')", myConnection);
                myCommande.ExecuteReader();
            }
     
        }
        void ChargerListeCategorie()
        {
     
            SqlConnection myConnection = new SqlConnection();
     
     
            myConnection.ConnectionString = "Data Source=PC-LAURENCE\\SQLEXPRESS; Initial Catalog=Librarie; Integrated Security=True;";
            myConnection.Open();
     
            // Requete SQL
            SqlCommand myCommande;
            myCommande = new SqlCommand("SELECT Categorie, Code_Categorie from Categorie", myConnection);
            SqlDataReader lecteurCategorie = myCommande.ExecuteReader();
     
     
            List<Categorie> Categories = new List<Categorie>();
            while (lecteurCategorie.Read())
            {
                Categories.Add(new Categorie(lecteurCategorie["Categorie"].ToString(), int.Parse(lecteurCategorie["Code_Categorie"].ToString())));
            }
            DdlCategorie.DataSource = Categories;
            DdlCategorie.DataTextField = "CategorieTitle";
            DdlCategorie.DataValueField = "Code_Categorie";
     
            DdlCategorie.DataBind();
     
            lecteurCategorie.Close();
            myConnection.Close();
     
        }

  2. #2
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Si je ne me trompe, ce message est renvoyé par ton serveur SQL Express et signale que l'information que tu veux enregistrer dans un champ est plus grande que la taille maximale autorisée, et que donc ce champ sera tronqué...
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  3. #3
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut
    Bonjour Pongten,

    merci pour ton aide.

    Oui c'est ce que j'avais aussi trouvé comme cause à ce message d'erreur.
    Je ne comprends pas en quoi c'est trop grand parce que j'ai testé ce que je récupère c'est juste un int et monchamp dans ma DB est bien un int.

  4. #4
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Il faudrait regarder la taille des champs pour la table "Ouvrages", et la taille des différents champs de ton objet Book (Titre, Auteur, ISBN, etc...)

    Pour moi, c'est là que se situe le problème...
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  5. #5
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut
    Je viens de vérifier et j'ai bien des int partout dans ma Class Bokks et dans ma table Ouvrages.

  6. #6
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Tu essayes de mettre du texte dans un champ Int ?
    Car le titre, c'est bien du texte non, donc surement un champ de type varchar ?
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  7. #7
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut
    Heu... non non. DdlCategorie.SelectedValue est bien un int. En fait dans ma DropDownList j'affiche bien du texte mais je récupère aussi une référence de ma catégorie
    comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     DdlCategorie.DataSource = Categories;
            DdlCategorie.DataTextField = "CategorieTitle";
            DdlCategorie.DataValueField = "Code_Categorie";

  8. #8
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Oui, mais pour moi, l'erreur ne vient pas de là, mais du moment où tu insère des données dans la table Ouvrages..
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  9. #9
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut
    J'ai essayé en plaçant le contenu dans une variable comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            int CodeCategorie = int.Parse(DdlCategorie.SelectedValue);
    mais j'ai à présent le message suivant :
    String or binary data would be truncated.
    The statement has been terminated.

  10. #10
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Et tu as ce message justement sur cette ligne ?
    Tu as placé un point d'arrêt ?
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  11. #11
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut
    Le message d'erreur apparaît sur la ligne juste après ma commande Insert.
    La ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myCommande.ExecuteReader();

  12. #12
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Donc, c'est bien ce que je dis depuis le début, le problème vient que l'une des valeurs que vous essayez d'insérer dépasse la taille maximale autorisée pour le champ.. et il s'agit fort probablement d'un des champs texte (Titre, Auteur ou ISBN)

    Quelle est la taille maximale autorisée pour ces champs dans la BD ?
    Quelle est leur taille lors de votre essai ?
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  13. #13
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut
    Ok, c'est effectivement ça. C'était mon champ ISBN dans ma DB qui n'acceptait que 15 caractères et j essayais dans mettre plus.

    Merci pour votre aide et votre patience !

  14. #14
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    A votre service

    Merci de penser à placer le sujet en "Résolu"
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/11/2010, 13h04
  2. [Error] String or binary data would be truncated.
    Par n00bi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 04/08/2006, 16h57
  3. String or binary data would be truncated
    Par Pierre FORAZ dans le forum XMLRAD
    Réponses: 2
    Dernier message: 24/05/2006, 20h40
  4. [SQL] Erreur grand débutant echo / $data
    Par carelha dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/05/2006, 12h01
  5. [JDBC] [Oracle] Erreur : End of TNS data channel
    Par loicmillion dans le forum JDBC
    Réponses: 2
    Dernier message: 01/02/2005, 14h27

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