Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : datagrid, questions en vrac [ Divers / General ] (Billybobbonnet)

mardi 22 juillet 2008 à 16:18:51 | datagrid, questions en vrac

Billybobbonnet

Bonjour à tous,

J'ai fait une application qui écrit dans une base de données mysql des messages qu'elle reçoit régulièrement. Une autre partie de cette application lit la table remplie et la charge dans un datagrid (au passage, merci à sLaYeR31 pour son excellente source). Vu que je découvre ce composant, et le .net par la même occasion, il y a encore pas mal de problèmes que je n'ai pas encore résolu. Les voici:

1.Comment mettre à jour ma datagrid à chaque insert dans ma base mySQL? J'ai une fonction de ma classe mySQL, pour les inserts, à la fin de laquelle j'ai rajouté:

principale est le nom de ma form principale, dts est mon dataset, et datagrid1.......je vous laisse deviner.
principale.DataGrid1.ResetText()
principale.DataGrid1.DataSource = dts.Tables("xapraw")

Ca marche pas!

Ajoutons à ça que par économie, et histoire de pas vider et recharger complètement  la datagrid devant l'utilisateur toutes les 2 secondes, je voudrais ajouter uniquement les nouvelles lignes. (datagrid1.update ou datagrid1.refresh?)
2. (un peu hors sujet) Quelle requête mysql pour afficher les x dernières entrées dans ma table? Pour le moment, je fais

SELECT * FROM xapraw ORDER BY ID DESC LIMIT 50

Ce qui me donne les 50 dernières entrées, mais dans le mauvais ordre!

3. Comment garder le focus sur le bas de la datagrid? J'ai pas mal de lignes et au lancement, je suis en haut de ma datagrid, mais ce sont les derniers messages qui m'intéressent. Comment donc mettre automatiquement le focus en bas?

4. Comment augmenter la taille (en nombre de caractères) de mes cellules? J'ai dans ma BDD des champs de type longtext, qui sont presque des petits paragraphes, et il n'y a que la première dizaine de caractères qui s'affiche...

5 Question subsidiaire: Comment intégrer une image dans les cellules de la datagrid?

Merci!


mercredi 23 juillet 2008 à 08:25:08 | Re : datagrid, questions en vrac

oo7jb5

Salut,

Pour vider une datagrid, tu peux faire comme cela madatagrid.datasource = Nothing puis ensuite tu recharges ton data set dedans comme tu le fais déjà.

Pour ta deuxième question, je ne sais pas trop.

Pour garder le focus sur une cellule en bas d'une datagrid, tu peux essayer de sélectionner la dernière ligne du datagrid en faisant par exemple : maDataGrid.SelectedRows(maDatagrid.Rowcount -1) (je suis pas sûr pour le - 1) Comme cela tu auras tout le temps ta dernière ligne de sélectionnée. Ou alors tu peux essayer d'afficher les messages dans l'ordre inverse dans ta datagrid !

Pour augmenter la taille en nombre de caractère de ta cellule de ta datagrid, tu peux mettre dans les propriétés de ta datagrid en mode design, les propriétés autoSizeColumnsMode et autoSizeRowMode à AllCells comme cela toutes tes colonnes seront redimensionnées suivant leur contenu !

Voila j'espère avoir pu t'aider. Bon courage pour ton application.

mercredi 23 juillet 2008 à 11:42:14 | Re : datagrid, questions en vrac

Billybobbonnet

Merci pour ces réponses, oo7jb5

pour vider la datagrid, ta solution fonctionne mais j'aimerai bien trouver quand même comment incrémenter les modifications sans tout recharger.

Pour le focus, pour le moment, les résultats sont arrivent par le haut, donc pas de problème. Lorsque j'aurai la bonne requete mySLQ, j'esserai ton astuce.

Par contre, pour le nombre de caractères par cellule, les propriétés que tu cites n'apparaissent pas actuellement. Il y a une référence à ajouter?

mercredi 23 juillet 2008 à 11:43:54 | Re : datagrid, questions en vrac

Billybobbonnet

Et comment éditer mon post pour corriger mes fautes d'orthographe?

mercredi 23 juillet 2008 à 11:58:29 | Re : datagrid, questions en vrac

oo7jb5

Salut,

Pour le fait d'éditer ton post pour corriger tes fautes, je crois qu'il faudra qu tu fasses avec, je ne suis pas sûr que l'on puisse les modifier.

Alors pour le nombre de caractère par cellule, moi en fait je te donnais une astuce qui consistait à augmenter la taille des cellules par rapport à son contenu, c'est bizarre que tu ne trouves pas les contrôles que je t'ai mis, chez moi ils apparaissent clairement. Est ce que cela viendrait du fait que je travail sous Visual Basic 2008 et toi non ? Je penses pas.

Donc tu n'as pas ces deux lignes dans les Properties de ta datagridview en mode design ? Moi je cliques juste sur la datagridview puis je regardes les propriétés et c'est au début dans les 10 premières lignes..

mercredi 23 juillet 2008 à 12:14:03 | Re : datagrid, questions en vrac

Billybobbonnet

Je bosse aussi avec vb 2008, donc ça ne doit pas être ça.

Sinon, ma datagrid est construite dynamiquement (pas de définition des colonnes, elle affiche les colonnes transmises par la requête) et c'est peut-être pour ça.

Au passage, si tu utilises des datagrid, j'ai trouvé une excellente fonction pour dimensionner idéalement la largeur (graphique) des colonnes, et je ne pense pas que ça justifie une source (d'autant qu'elle n'est pas de moi). Cela dit, la voici:

Public Sub columns_autoresize(ByRef sqlGrid As DataGrid)

        Try
            Dim t As Type = sqlGrid.GetType
            Dim m As Reflection.MethodInfo = t.GetMethod("ColAutoResize", Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance)

            Dim i As Integer = sqlGrid.FirstVisibleColumn
            Dim j As Integer = sqlGrid.VisibleColumnCount
            Do While i < j
                m.Invoke(sqlGrid, New Object() {i})
                i = i + 1
            Loop
        Catch ex As Exception
            Trace.Write("Failed to resize column: " + ex.ToString + vbCrLf)
        End Try
    End Sub

mercredi 23 juillet 2008 à 13:06:17 | Re : datagrid, questions en vrac

oo7jb5

Cela explique pourquoi tu n'as pas accès au designer ! Autant pour moi. Cependant tu peux toujours utiliser les fonctions autoresizeRow et autoresizecolumn. Est-ce-que ton problème a été résolu avec la fonction que tu as donné dans le post précédent ?

mercredi 23 juillet 2008 à 14:38:53 | Re : datagrid, questions en vrac

Billybobbonnet

Non, la fonction que j'ai donné permet de dimensionner la largeur des cellules en affichage, pas le nombre de caractères qu'elles contiennent.

lorsque j'essaie d'appeler la propriété autoresizeRow, visual studio 2008 me renvoie " la propriété autoresizeRow n'est pas un membre de 'system.windows.forms.datagrid'", mais après une petite recherche google, je me suis rendu compte que ces propriétés sont à mettre après datagridview. Je ne suis plus très sûr que ça vienne de là, le problème de nombre de caractères par cellule ne variant pas avec la largeur de celle ci. Ca vient peut-être du dataset. En attendant, je persévère



mercredi 23 juillet 2008 à 14:55:22 | Re : datagrid, questions en vrac

oo7jb5

Oui, cela peut en effet venir de ton dataset, si ce dernier n'accepte pas autant de caractère que tu rentres mais vu que dans ton cas les données sont déjà dans ta table, cela ne vient pas du dataset mais plutôt de ton affichage apparemment. En relisant de plus près ta fonction, il faut que tu remplaces le datagrid par un datagridview (le datagrid étant, il me semble l'ancêtre du datagridview).

Est ce que ton texte est vraiment coupé où il ne s'affiche pas tout à l'écran ?

mercredi 23 juillet 2008 à 16:06:48 | Re : datagrid, questions en vrac

Billybobbonnet

le texte est vraiment coupé dans la cellule, à partir du 45ème caractère, alors que dans la table mySQL, cette même cellule en fait 60. Pour ce qui est de remplacer par un datagridview, je pense que ce sera un dernier recours car j'ai eu du mal à obtenir un résultat avec le datagrid. L'idée, si c'est le dataset, serait que chaque item de ma collection de données est limité à 45 caractères. Et si c'est le cas, comment change t on cette valeur?


1 2

Cette discussion est classé dans : mysql, datagrid, questions, principale, datagrid1


Répondre à ce message

Sujets en rapport avec ce message

datagrid, insertion [ par vish ] salut, j'essaye depuis des jours d'afficher le resultat de ma requete dans mon datagrid voici mon code:rivate Sub Form_Load()Dim SQL As StringDim rs A Questions Datagrid .NET [ par plca ] BonjourJ'ai plusieurs pb que je n'arrivent pas à resoudre. Si je pouvais avoir une reponse de l'un de vous ça serait génial.Ca concerne un datagrid .N Changer la Couleur d'une ligne dans DataGrid [ par NWolfer ] Je cherche de l'aide pour change la couleur d'une ligne dans une DataGridLes datas sont enregistrées dans une DataTable, qui est la source d'une DataG Datagrid sous VB NET [ par Mondou ] J'essaie de valider la saisie de texte dans un datagrid, mais je ne trouve pas, y-a-til quelqu'un qui pourrait m'envoyer une exemple SVP (très différe controle ado et requete vers mysql [ par corinne24 ] bonjour à tous,Je débute en programmation avec une base de données mysql et j'ai un problème que je ne parviens pas à resoudre :Dans un formulaire, j' Somme du contenu d'un champ de données (Datagrid) [ par chgag200 ] Bonjour, J'ai affecté un Adodc à un controle DataGrid. Quand l'utilisateur obtient le DataGrid à l'écran, il peut en appuyant sur un bouton faire la s VB.NET :pb datagrid [ par kalimeroo13 ] Bonjour, voila mon probleme :je déclare un tableau unidimensionnel de string que j'associe à un datagrid : DataGrid1.SetDataBinding(XITM3_tab, "")ou b DATAGRID & DATACOMBO [ par Heny ] Salut a tousMon problème est le suivant Dans mon application il y a un BOUTON,un TEXTBOX un DATAGRID1 avec deux colonnes la première « PRODUIT » la mise en forme largeur de colonne datagrid automatique [ par yeyedeb ] Bonjour,je cherche, en vain, à mettre en forme automatiquement la largeur des colonnes d'un datagrid.J'ai écrit la petite procédure qui suit, elle a p datagrid [ par LILAS_82 ] bonjour,j'ai une datagrid dont pour laquelle je souhaiterais que les donnees ne soient pas modifiables par l'utilisateur. cependant, je refuse le 'dat


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,373 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.