-1

私はデータグリッドと90000行を持っています。

ライン 90000 のデータグリッドが非常に遅く開きます。オープンまで9秒。の開通を早める最善の方法は何ですか?

私のコード:

string sqlSorgu = "SELECT "+
              " customer.id," +
              " customer.medaxil_status," +
              " customer.hesab_nomresi," +
              " customer.soyad ," +
              " customer.ad ," +
              " customer.ataadi ," +
              " customer.mebleg ," +
              " customer.teskilat_kodu" +

                   " FROM customer  ORDER BY customer.id ASC ";
                    OleDbDataAdapter dataAdapter = new OleDbDataAdapter(sqlSorgu, Program.esas.bazayaQosul);

                    setx = new DataSet();
                     datatabmedaxil = new DataTable();
                    setx.Tables.Add(datatabmedaxil);

                    dataAdapter.Fill(datatabmedaxil);
                    MedaxilGridView1.DataSource = datatabmedaxil;


            if (this.MedaxilGridView1.RowCount > 0)
            {
                for (int i = 0; i < this.MedaxilGridView1.RowCount; i++)
                {
                    if (this.MedaxilGridView1["medaxil_status", i].Value.ToString() == "1")
                        this.MedaxilGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Pink;
                    else
                        this.MedaxilGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Empty;
                }
            }

私を助けてください

4

3 に答える 3

1

1 つのビューで 90,000 行がまったく使用できないという点については、他のほとんどすべての人に同意しますが、請求書を支払う人が愚かな決定を下すことがあります....

これはあなたのニーズに適しているようです:

Windows フォーム DataGridView コントロールでのジャスト イン タイム データ読み込みを使用した仮想モードの実装: MSDN

于 2012-06-22T20:42:32.637 に答える
0

90000 行はまったく使用できないことに同意してください。ページングに関する StackOverflow に関する記事がここにあります。

Linq を使用したページングの実装

また、ページングを処理するためにコントロールに依存しないことを強くお勧めします。90000 行をメモリに格納し、ページを通過させるだけです。同じくらい遅く、同じくらい恐ろしく、同じように使えません。

ページングに加えて、セットのサイズを妥当な量まで減らす方法を検討する必要があります。90000 行をページングしても、誰も対処するには多すぎます。これは、1 ページあたり 54 項目を表示する場合、最後のレコードに到達するために 1667 ページをページ送りしなければならないというユーザー エクスペリエンスを表しています。欲しいものを見つけるために、そんなに多くのアイテムをページングしなければなりませんか?

Foxpro の声明については?ローカルとリモート、データのサイズ、データの保存方法など、多くの要因が関係しています。ローカル ハード ドライブから 200 バイトのデータが出力される 140000 行と、XML でシリアル化された 90000 行とは大きく異なります。各行に 1K のデータがある企業サーバーに送信されるサービス。

于 2012-06-22T20:12:13.980 に答える
0

私が知っている単純で直接的な解決策はありません。

それを制御下に置くために使用することを検討するオプション:

  • 検索フィルター
  • 出力を妥当な行数 (例: 1000) に制限し、リストが切り捨てられたという警告を表示します。
  • ページネーション (結果をページに分割)
于 2012-06-22T19:35:11.307 に答える