Afficher les N premiers éléments d'un Datatable dans un dataGridView ?

soupiste Messages postés 79 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 22 juin 2011 - 17 févr. 2010 à 17:05
soupiste Messages postés 79 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 22 juin 2011 - 19 févr. 2010 à 11:50
Salut a toute la communauté.

Je suis en train de faire un programme qui se charge d'afficher des données receuillies d'une base de données SQL Server. Les données sont si lourdes et grandes a l'affichage que l'application semble se planter parfois, surtout dans le tri par colonne des données. Alors, j'ai eu pour idée de n'afficher a chaque fois que les 100 premieres lignes, et donner a l'utilisateur la possibilité de faire des copier/coller du datatable dans excel. Ainsi, au niveau interface application, je n'afficherai que les 100 primieres lignes. J'ai beau tout essayer, mais rien ne marche.
Quelqu'un saurait - il comment s'y prendre?
Y a t-il possibilité de le faire par requete avec "TOP 100" ? ou autre choses !!!!!

Merci pour vos reponses.

voici deja que j'ai essayé de faire avec un Datarow et un select sur DataTable :


[b]try
{
CmdSelect = new SqlCommand(" select * from HANDOVER_PROCESS ", MonControl.MaConnect);
CmdSelect.CommandType = System.Data.CommandType.Text;
MonDataAdapter = new SqlDataAdapter(CmdSelect);
ds.Tables["VOISINAGE_TSH"].Clear();
MonDataAdapter.Fill(ds.Tables["VOISINAGE_TSH"]);
}
catch (Exception xcp)
{
MessageBox.Show(xcp.Message);
}
System.Data.DataTable table = ds.Tables["VOISINAGE_TSH"];
ResulRow = table.Select("top 100", "CELLULE asc");
dat = table.Clone();
for (int i = 0; i <= ResulRow.Length; i++)
{
dat.ImportRow(ResulRow[i]);
}
CM = (CurrencyManager)BindingContext[dat];
RechCellGrid.DataSource = dat;
CM = (CurrencyManager)BindingContext[dat];/b

6 réponses

soupiste Messages postés 79 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 22 juin 2011
17 févr. 2010 à 17:07
Juste rapperler ceci :

DataRow[] ResulRow;
DataTable dat = new DataTable();
0
soupiste Messages postés 79 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 22 juin 2011
17 févr. 2010 à 18:31
Quelqu'un pourrait-il apporter du nouveau a mon problème ?

Merci
0
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
18 févr. 2010 à 09:05
Bonjour,
voilà ce que je viens de lire à l'instant et qui devrait t'aider.
http://www.codeproject.com/KB/webforms/ExGridView.aspx


louis
0
soupiste Messages postés 79 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 22 juin 2011
18 févr. 2010 à 10:09
J'ai lu le post, mais cela ne resoud pas vraiment mon problème.
Mais, dans la possibilité de réguler un affichage par page comme indiqué dans le post, ca pourrait m'arranger peut être.
Mais comment s'y prendre, la est la question !!!!!!!!!!!
0

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

Posez votre question
Smirneo Messages postés 34 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 15 décembre 2011
19 févr. 2010 à 11:44
Voila un code automatiquement generé par sql management 2008;

"SELECT TOP 100 [IMG_ID]
,[PH_ID]
,[IMG_NOM_FICHIER]
,[IMG_DATE_CREATION]
,[IMG_DESCRIPTION]
,[IMG_HAUTEUR]
,[IMG_LARGEUR]
,[IMG_COPYRIGHT]
,[SSCAT_ID]
FROM [Phototheque1].[dbo].[IMAGE_IMG]"

en esperant que ca puisse t'aider
0
soupiste Messages postés 79 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 22 juin 2011
19 févr. 2010 à 11:50
cette requête est la plus évidente de ce que l'on puisse faire quand on veut afficher un nombre précis de lignes. Mais, cette option ne m'arrange pas, vu que mon DataTable, lui doit contenir toutes les lignes tandis que le DataGridView n'afficherait que les 100 premières lignes. Cela me permettrait d'alléger l'affichage, et de plus copier le datatable dans un Clipboard pour effectuer plus tard des collages dans Excel. J'espère me faire comprendre par ces termes !!!
0
Rejoignez-nous