Bonjour tout le monde,
j'essaie d'afficher les données d'une table dans une DataGridView, mais toutes les données sont remontées ce qui nécessite beaucoup de ressources et prend un certain temps si la taille de la table est conséquente.
N'est-il pas possible de n'afficher que les premières lignes (les 100 premières par exemple) et que les suivantes ne sont remontées au fur et à mesure que lorsque l'utilisateur descend l'ascenseur par exemple ?
Dans la fenêtre, il ya un DataGridView qui s'appelle dgDonneesSources et un BindingNavigator qui s'appelle bnDgDonnees.
Voici mon code :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 private DbConnection _DbConnection = null; private string _ProviderDll = "MySql.Data.MySqlClient"; private string _NomTableSQL = "performance_1m"; private string _ConnectionString = "Server=MonServer;Database=MaDatabase;User Id=root;Password=MonPassword;Port=3306"; private void button1_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; try { _DbConnection = DbProviderFactories.GetFactory(_ProviderDll).CreateConnection(); _DbConnection.ConnectionString = this._ConnectionString; _DbConnection.Open(); DbCommand command = this._DbConnection.CreateCommand(); command.CommandType = CommandType.Text; command.CommandText = "SELECT * FROM " + _NomTableSQL; command.Connection = this._DbConnection; DbDataReader dbreader = command.ExecuteReader(CommandBehavior.Default); DataSet dsResultat = new DataSet(); // C'est cette ligne qui charge toutes les données dsResultat.Load(dbreader, LoadOption.PreserveChanges, new string[] { _NomTableSQL }); BindingSource bs = new BindingSource(); bs.AllowNew = false; bs.DataSource = dsResultat.Tables[_NomTableSQL]; bnDgDonnees.BindingSource = bs; dgDonneesSources.DataSource = bs; } finally { if (_DbConnection.State != ConnectionState.Closed) _DbConnection.Close(); tsslNbColonne.Text = "Colonnes : " + this.dgDonneesSources.ColumnCount.ToString(); Cursor = Cursors.Default; } }
Merci d'avance pour votre aide.
Partager