"La somme des valeurs FillWeight des colonnes ne peut pas dépasser 65535"

Résolu
rahma_bou22 Messages postés 21 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 16 avril 2009 - 13 avril 2009 à 17:37
rahma_bou22 Messages postés 21 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 16 avril 2009 - 16 avril 2009 à 16:02
Bonjour ,
dans mon programme  VB.net (2005) je manipule des matrices de 1500 lignes et 2000 colonnes et j doit les multiplier . donc lors de l'exécusion j'ai l'erreur suivante  "La somme des valeurs FillWeight des colonnes ne peut pas dépasser 65535"
sachant que si je diminue le nombre de lignes et de colonne mon programme marche parfaitement.
c'est indispensable de faire ce calcul ,si quelqu'un peut m'aider pour changer la taille des données de 16 à 32 bit .
car si j'ai bien compris ce message est du aux dépassement de la taille des 65535 caractères maximum autorisés

<li>
Avec 16 bits=65536 valeurs.
</li><li>
Avec 32 bits=4294967296 valeurs.
</li>Pouvez vous m'aider?

15 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
16 avril 2009 à 11:00
Ok, je pense avoir compris.

Tu dois certainement avoir quelque part dans ton code cette ligne :
D3.ColunmsCount = n

Tu dois la supprimer, c'est elle qui te crée les 1500 colonnes et qui génère l'erreur.

Il faut créer les colonnes, une à une, en les modifiant imédiatement :

        '******colonne
        For k = 0 To n
            D3.Columns.Add(D1.items(0,k).value, "")
            D3.Columns(k).FillWeight = 1
        Next

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
14 avril 2009 à 17:18
Ton problème est du la la valeur de la propriété FillWeight de chacune de tes colonnes (et n'a rien à voir avec un quelconque nombre de caractères).
Cette propriété est utilisée lorsque tu spécifie certains modes de remplissage automatique à ta grille (redimensionnement automatique des colonne pour que toutes soient affichées).
La valeur par défaut est de 100, ce qui te permet de créer 655 colonnes.

Si tu n'utilise pas ces modes de remplissages, spécifie une valeur de 1 à la propriété FillWeight de chacune de tes colonnes

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
0
rahma_bou22 Messages postés 21 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 16 avril 2009
14 avril 2009 à 17:24
Bonjour,

Merci pour ta réponse. oui peut être ca le probléme mais escque vous pouvez mieux m'expliquer comment je peut changer cette valeur (100)

et j'ai pas bien compris  " Si tu n'utilise pas ces modes de remplissages, spécifie une valeur de 1 à la propriété FillWeight de chacune de tes colonnes"

où je peut trouvé cette propriété pour la changer?
Merci d'avance
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
14 avril 2009 à 17:44
Le mode de remplissage concerné est le mode "Fill".
Ce mode est défini soit au niveau de la colonne par la propriété AutoSizeMode, soit au niveau de la propriété AutoSizeColumnsMode de la grille si la propriété de la colonne est sur "NoSet"

Si l'une de ces 2 propriétés est sur le mode Fill, la propriété FillWeight de la colonne sera utilisée pour déterminer la largeur à donner à la colonne par rapport aux autres colonnes.

Si tu n'utilise pas ces modes de remplissage, la propriété FillWeight de la colonne ne sert à rien. Tu peux donc y mettre la valeur 1 dedant (0 n'est pas accepté).

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rahma_bou22 Messages postés 21 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 16 avril 2009
15 avril 2009 à 16:03
Bonjour,
Merci pour vous réponses.
la création de ma datgridview3 se fait automatiquement elle comporte :
<li>n=1500 colonns prise de datagridview1</li><li>m=70 ligne prise de datagridview2
</li>'******colonne
for k=0 to n
datagridview3.colunms(k).name=datagridview1.items(0,k).value
Next
'********ligne
for l=0 to m
datgrid3.Rows.Add()

datagridview3.items(0,l).value=datagridview2.items(0,l).value

Next

Est ce que vous pouvez me pressier ou je peut modifier la propriété FillWeight.

j'ai fait cette modification et ça na pas marcher :
'******colonne

for k=0 to n
datagridview3.colunms(k).fillweight=1

datagridview3.colunms(k).name=datagridview1.items(0,k).value

Next

Mais le même message d'erreur s'affiche 
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 avril 2009 à 17:54
C'est au moment de la création de la colonne qu'il faut spécifie la propriété

Tu ne montre pas ici le code qui te sert à créer tes 1500 colonnes.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
0
rahma_bou22 Messages postés 21 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 16 avril 2009
15 avril 2009 à 17:59
je l'ai pas crée mais dans la proprité DataBindings de datagridview j'ai choisi la table de ma base de données qui contient 1500 ligne ( SQL server).et c'est automatiquement j'aurais les données de ma table afficher dans la datagridview.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 avril 2009 à 21:08
Je comprend pas bien comment tu fais.

A ma connaissance, dans la propriété DataBindings, il n'est pas possible de créer de lien avec une source de données de sorte qu'une ligne de la source donne la création d'une colonne dans la datagrid

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
0
rahma_bou22 Messages postés 21 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 16 avril 2009
15 avril 2009 à 21:42
oui je ne fait que choisir la table source dans la propriété DataBindings et la table source sera automatiquement copier dans la Datagridview destination . sans préciser ni le nombre de ligne ni colonne ,je n'écris aucune ligne de code.
Est-ce que vous m'avez compris?
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 avril 2009 à 22:32
Cela signifie donc que tu as plus 1500 colonnes dans ta table ? c'est possible ça?

Si c'est le cas, je vois pas trop comment faire, vu que le chargement est automatique. A part créer manuellement les 1500 colonnes dans la datagridview. A condition que lors de chargement celle-ci ne soit pas automatiquement réinitialiser.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
0
rahma_bou22 Messages postés 21 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 16 avril 2009
15 avril 2009 à 23:02
non  j'ai n=1500 ligne d'une table M1 copier automatiquement dans une Datagridview D1
 et m=70 ligne d'une table M2 copier automatiquement dans une Datagridview D2.
et  la datgridview D3 contient 1500 colonnes( qui sont des ligne dans D1) de D1 et 70 lignes de D2.

'******colonne
for k=0 to n
D3.colunms(k).name=D1.items(0,k).value
Next
'********ligne
for l=0 to m
D.Rows.Add()
D.items(0,l).value=D2.items(0,l).value
Next

Vous m'avez compris?
0
rahma_bou22 Messages postés 21 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 16 avril 2009
16 avril 2009 à 11:17
Merci pour ton effort et ton intérêt .
je vais essayer votre solution.
0
rahma_bou22 Messages postés 21 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 16 avril 2009
16 avril 2009 à 12:09
c'est très bien marcher .Merci pour votre aide.
est ce que vous savez comment je peut écrire dans la zone grise de la datagridview (premier colonne par défaut ) .
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
16 avril 2009 à 14:03
Exemple :

        For k = 0 To D3.Rows.Count - 1
            D3.Rows(k).HeaderCell.Value = k.ToString
        Next

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
0
rahma_bou22 Messages postés 21 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 16 avril 2009
16 avril 2009 à 16:02
non ça na pas marcher
0
Rejoignez-nous