VB.Net Écrire dans un DataGridView [Résolu]

cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 10 sept. 2009 à 19:16 - Dernière réponse :  radzo
- 19 nov. 2013 à 09:43
Bonjour à tous.

J'aimerais écrire certaines informations (contenu dans un Tableau) dans un DataGridView et ca bug et je ne saisi pas comment régler mon problème.

Pour le moment, je veux faire un test et remplir deux éléments dans la colonne 0 sur deucx lignes (la premiere colone de mon DataGridView).

J'ai toujours l'erreur suivante:
L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.
Nom du paramètre : index


Merci de votre aide

Voici mon code

Dim i As Integer
Dim Fichier_Modif As String
Dim Date_Backup As Date '= IO.File.GetLastWriteTime("MonFichier")
Dim Date_Fichier As Date
Dim CountData As Integer = 1
For i = 0 To UBound(Tableau_Fichier)
Fichier_Modif = Replace(Tableau_Fichier(i), txtSource.Text, txtDestination.Text)
Date_Backup = IO.File.GetLastWriteTime(Tableau_Fichier(i))
Date_Fichier = IO.File.GetLastWriteTime(Fichier_Modif)
If Date_Backup <> Date_Fichier Then
lstBoxNonCopier.Items.Add(Tableau_Fichier(i))
'Écrire dans le RichTextBox
txtfinal.Text = txtfinal.Text & vbCrLf & Tableau_Fichier(i) & Space(5) & Fichier_Modif & Space(5) & Date_Fichier
'Écrire dans le DataGridView
[b]DataGridView1.Item(1, CountData).Value = Tableau_Fichier(i)
CountData = CountData + 1/b

End If
Next i
Afficher la suite 

Votre réponse

15 réponses

Meilleure réponse
cs_ssefyou 120 Messages postés samedi 3 mai 2008Date d'inscription 18 juillet 2013 Dernière intervention - 11 sept. 2009 à 18:45
3
Merci
Salut,
pour remplir un DataGirdView tu dois commencer
par :

1-créer les colonnes du DataGirdView et définir leurs nom et leurs entête puis enfin les ajouter a la collections des colonnes.

2- créer une row (ligne)

3- créer les cellules et remplir la collection cells du row avec les cellules crée.

4-Ajouter la ligne anotre datagridview.

voici un exemple :

 'Creation Des columns et la définition de leur proprieté

        Dim col1 As New DataGridViewTextBoxColumn
        col1.Name = "Fichiers"
        col1.HeaderText = "Fichiers"
        DataGridView1.Columns.Add(col1)

        Dim col2 As New DataGridViewTextBoxColumn()
        col2.Name = "Fichiers_Modif"
        col2.HeaderText = "Fichiers_Modif"
        DataGridView1.Columns.Add(col2)

        Dim col3 As New DataGridViewTextBoxColumn()
        col3.Name = "Date_Fichier"
        col3.HeaderText = "Date_Fichier"
        DataGridView1.Columns.Add(col3)

        'Remplisage de la DATAGIRDVIEW 

        Dim ligne As DataGridViewRow
        Dim cel1 As New DataGridViewTextBoxCell
        Dim cel2 As New DataGridViewTextBoxCell
        Dim cel3 As New DataGridViewTextBoxCell

        For i As Integer = 0 To Tableau_Fichier.Length - 1
            ligne = New DataGridViewRow
            cel1 = New DataGridViewTextBoxCell
            cel2 = New DataGridViewTextBoxCell
            cel3 = New DataGridViewTextBoxCell

            cel1.Value = Tableau_Fichier(i)
            cel2.Value = Fichier_Modif(i)
            cel3.Value = Date_Fichier(i)

            ligne.Cells.Add(cel1)
            ligne.Cells.Add(cel2)
            ligne.Cells.Add(cel3)
            DataGridView1.Rows.Add(ligne)
        Next


sinon il y'a une autre méthode plus simple ou on utilise un tableau de string pour écrire :
DataGridView1.Columns.Add("Fichiers", "Fichiers")
        DataGridView1.Columns.Add("Fichiers_Modif", "Fichiers_Modif")
        DataGridView1.Columns.Add("Date_Fichier", "Date_Fichier")


        Dim ligne(2) As String

        For i As Integer = 0 To Tableau_Fichier.Length - 1
            ligne(0) = Tableau_Fichier(i)
            ligne(1) = Fichier_Modif(i)
            ligne(2) = Date_Fichier(i)
            DataGridView1.Rows.Add(ligne)
        Next


j'espère que cet charabia t'aidera a régler ton problème

@+

Merci cs_ssefyou 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Bonjour, moi aussi je cherche une aide pour compléter un grid dont le nombre de lignes est inconnue à l'avance. En fait, un utilisateur saisit les données dans les lignes du grid. Comment faire? Et comment représenter le gird dans le "design"? Merci pour votre aide!
Commenter la réponse de cs_ssefyou
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 11 sept. 2009 à 00:55
0
Merci
Salut,

1 ton code ne compile pas
Dim Date_Backup As Date '= IO.File.GetLastWriteTime("MonFichier")
--> BOOM

For i = 0 To UBound(Tableau_Fichier) -1
ou
mieux (plus .net) car ubound c'est du VB6
For i = 0 To Tableau_Fichier.Length -1
Commenter la réponse de nhervagault
cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 11 sept. 2009 à 03:18
0
Merci
salut merci pour le cgangement.. mais.. je vais vérifier demain matin. Monprogramme fonctionnais correctement sauf pour l'écriture dans le datagrid .. Mais je ferai les modification que tu me proposes... et pour le datagrid, mon code est OK ???


merci
Commenter la réponse de cs_MagDix
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 11 sept. 2009 à 08:35
Commenter la réponse de nhervagault
cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 11 sept. 2009 à 13:44
0
Merci
re,...

Hé bien ma question était de savoir qu'est ce que je ne fais pas de correct... Avant de poser ma question, j'ai été voir sur msdn mais je n'y arrive pas... Je ne sais pas quoi chercher... et le lien que tu m'as donné. Bien que je suis certain d'avoir la réponse devant moi, m'explique rien.. enfin ce n'est pas le type de code que je suis habitué d'utilisé... Je m'y perd un peu...

Bref comment faire pour remplir un datagridview avec certaine données
Mon but est de remplir le datagrid et d'utiliser 3 colonnes et un nombre X de lignes avec ces infos
Tableau_Fichier(i) - Fichier_Modif Date_Fichier

Je m'excuse de mon incompétence...

merci de tonaide
Commenter la réponse de cs_MagDix
cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 14 sept. 2009 à 19:02
0
Merci
Merci beaucoup... J'ai essayé le deuxième méthode sans succès.. J'ai ensuite essayé la prmiere et ca fonctionne très bien...

Merci c'est très apprécié...

P.S. je vais réésayer plus tard la deuxième méthode qui semble beaucoup mieux...
Commenter la réponse de cs_MagDix
cs_ssefyou 120 Messages postés samedi 3 mai 2008Date d'inscription 18 juillet 2013 Dernière intervention - 14 sept. 2009 à 22:07
0
Merci
De Rien et Bonne chance
Commenter la réponse de cs_ssefyou
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 17 sept. 2009 à 14:19
0
Merci
Le code que est présenté n'est pas une manière tres propre de programmez.
Car la présentation est les données sont mélangées.

Il est préférable de passer par du databinding.

Et essayé de faire évoluer ta facon de programmer.
Ton code deviendra plus maintenable et peut etre plus performant au passage.
Commenter la réponse de nhervagault
cs_ssefyou 120 Messages postés samedi 3 mai 2008Date d'inscription 18 juillet 2013 Dernière intervention - 17 sept. 2009 à 16:23
0
Merci
Salut nhervagault

comment faire pour lier un tableau de string a une DataGridView ??
ce que je sais c'est le DataBinding fonctionne quand on un objet DataSet !

que penser vous

Merci
Commenter la réponse de cs_ssefyou
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 17 sept. 2009 à 16:45
0
Merci
La reponse est la
http://support.microsoft.com/kb/315784
ou la
http://nevmehta.blogspot.com/2006/10/datagrid-datagridview-data_116081795556443197.html

http://www.devx.com/dotnet/Article/33748

Il semble qu'il faut passer par une classe intermediaire ou le currencymanager ou le binding source.
Commenter la réponse de nhervagault
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 17 sept. 2009 à 16:46
0
Merci
Oups finalament
Dim arr() As String = _
{"Product 1", "Product 24", "Product 356"}
DataGridView1.DataSource = arr

Suffit.
Commenter la réponse de nhervagault
cs_ssefyou 120 Messages postés samedi 3 mai 2008Date d'inscription 18 juillet 2013 Dernière intervention - 17 sept. 2009 à 19:59
0
Merci
salut

une petite question, comment faire pour le texte des étêtes des colonnes ?

Merci
Commenter la réponse de cs_ssefyou
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 17 sept. 2009 à 21:10
0
Merci
http://www.csharpfr.com/tutoriaux/TUTORIEL-DATAGRIDVIEW_379.aspx

Une partie des reponse ici.
Soit le faire en code
Soit le faire en mode design
Commenter la réponse de nhervagault
cs_ssefyou 120 Messages postés samedi 3 mai 2008Date d'inscription 18 juillet 2013 Dernière intervention - 17 sept. 2009 à 22:06
0
Merci
ok Merci
Commenter la réponse de cs_ssefyou

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.