none
erreur par default DataGridView

    Question

  • Bonne journée à tous,

    j'ai commencé à développer avec c# maintenant il y'a environ 2 ou 3 semaines et depuis la dernière semaines je suis bloqué avec un problème du DataGridView. Quand je lance l'application, je reçois ce message d'erreur:

    L'exception suivante s'est produite dans le DataGridView:
    System.ArgumentException: Le paramètre n'est pas valide.
    à System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagment, Boolean validateImageData)
    à System.Drawing.ImageConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
    à System.Windows.Forms.Formatter.FormatObjectInternal(Object value, Type targetType, TypeConverter sourceConverter, TypeConverter targetConverter, String formatString, IFormatProvider formatInfo, Object formattedNullValue)
    à System.Windows.Forms.Formatter.FormatObject(Object value, Type targetType, TypeConverter sourceConverter, TypeConverter, targetConverter, String formatString, IFormatProvider formatInfo, Object formattedNullValue, Object dataSourceNullValue)
    à System.Windows.Forms.DataGridViewCell.GetFormattedValue(Object value, Int32 rownIndex, DataGridViewCellStyle& cellStyle, TypeConverter valueTypeConverter, TypeConverter formattedValueTypeConverter; DataGridViewDataErrorContexts context)
    
    Pour remplacer cette boîte de dialogue par défaut, traitez l'événtment DataError.

    La base de donnée que j'utilise est de type .mdf, j'ai essayé VS Community 2017, VS 2015, VS 2012, VS 2008 c# express, et voici le code:

    SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Kh\Documents\Visual Studio 2008\Projects\MyAppHachi\MyAppHachi\BIJOU.mdf;Integrated Security=True;User Instance=True");
                SqlDataAdapter sdl = new SqlDataAdapter(@"SELECT * FROM F_BANQUE", con);
                DataTable dt = new DataTable();
                sdl.Fill(dt);
                dataGridView1.DataSource = dt;

    j'attend votre réponse.

    mercredi 14 mars 2018 18:07

Réponses

  • Ces champs sont aussi des champs qui sont renseignés à l'aide d'une formule, donc ils n'ont pas de réel intérêt à être récupérés.

    Par exemple, pour le champ cbCQ_INTITULE, je vois la formule suivante :

    (convert(varbinary(36),isnull([BQ_Intitule],'')))

    Quel est l'objectif de votre projet / écran? S'agit-il de faire un requêteur? Un export des données?

    lundi 19 mars 2018 08:24

Toutes les réponses

  • Bonjour,
    Consultez les articles suivant qui peuvent vous aider:
    DataGridView.DataSource propriété
    Comment : lier des données au contrôle DataGridView Windows Forms


    Cordialement, 
    Nina

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    jeudi 15 mars 2018 14:36
    Modérateur
  • Je ne vois pas de rapport entre votre "description" + le message d'erreur avec le code que vous nous montrez.

    Le message d'erreur montre que c'est en tentant d'afficher une image dans une cellule de la grille.

    Isolez la ligne de la base qui vous fait planter votre application en manipulant votre requête SQL ou en y regardant directement avec un client SQL.


    Paul Bacelar, Ex - MVP VC++

    jeudi 15 mars 2018 16:23
  • Bonjour,

    Faire une requête SQL

    SELECT * FROM F_BANQUE

    est à éviter, faites apparaitre explicitement les noms des colonnes concernées.

    Par exemple, si vous décidez d'ajouter des info libres dans cette table, vous n'aurez pas à actualiser votre grille.

    Pour moi, le problème provient des colonnes avec les données cryptées, comme par exemple cbBQ_Intitule, cbBQ_Abrege et d'autres colonnes dont le nom commence par cb
    • Modifié SquallFF8 vendredi 16 mars 2018 11:05
    vendredi 16 mars 2018 11:01
  • les champs de l'erreurs sont de type binaire, quand je vois les données de la tables, dons ces champs il est écrit: <Données Binaires> mais dans la définition des champs, il n'y pas de type et je ne peux pas le changer
    dimanche 18 mars 2018 10:35
  • Ces champs sont aussi des champs qui sont renseignés à l'aide d'une formule, donc ils n'ont pas de réel intérêt à être récupérés.

    Par exemple, pour le champ cbCQ_INTITULE, je vois la formule suivante :

    (convert(varbinary(36),isnull([BQ_Intitule],'')))

    Quel est l'objectif de votre projet / écran? S'agit-il de faire un requêteur? Un export des données?

    lundi 19 mars 2018 08:24
  • ça marche avec une conversion en string, merci beaucoup.

    en faite, c'est un logicel qui permet de voir les données dans une base et d'enregistrer d'autre

    lundi 19 mars 2018 15:15