web-dev-qa-db-ja.com

C#でdataGridView列をソートしますか? (Windowsフォーム)

私は、SQLテーブルからバインドするデータグリッドビューを持っています。そのdvには、Id、Name、Priceという属性があります。 Name ColumnsのSortModeをAutomaticに設定し、この列のヘッダーをクリックすると、Nameの最初の文字に基づいてこのdvを並べ替えることができます。これにより、最初の文字(Acumulator、Boat、コカコーラ、エンジンなど)。

[名前]列のヘッダーをクリックせずにこのことを行う方法はありますか。フォームがロードされるときにこの仕事をするコードを探しています。

44
AXheladini

DataGridViewには「Sort」というメソッドがあります。

this.dataGridView1.Sort(this.dataGridView1.Columns["Name"], ListSortDirection.Ascending);

これにより、プログラムでデータグリッドビューがソートされます。

100
BFree
dataGridView1.Sort(dataGridView1.Columns[0],ListSortDirection.Ascending);
13
user427483

返されるデータを順序付けることにより、SQLデータベースから返されるデータを制御できます。

orderby [Name]

アプリケーションからSQLクエリを実行する場合、返されるデータを並べ替えます。たとえば、プロシージャを呼び出す関数またはSQLを実行する関数を作成し、orderby基準を取得するパラメーターを指定します。データベースから返されたデータを注文した場合、時間を消費しますが、UIではなく注文したいというように実行されているため、実行時に注文するので、SQLを実行するときに注文しますクエリ。

6
Ahmy

これは簡単です:)

dataview dataview1; 
this.dataview1= dataset.tables[0].defaultview;
this.dataview1.sort = "[ColumnName] ASC, [ColumnName] DESC";
this.datagridview.datasource = dataview1;
2
nate wew

つかいます Datatable.Default.Sortプロパティを使用して、それをdatagridviewにバインドします。

0
danish

これを行う最良の方法は、データソースをバインドする前にリストを並べ替えることです。

cars = cars.OrderBy(o => o.year).ThenBy(o => o.color).ToList(); adgCars.DataSource = cars;

悪い英語でごめんなさい。

0
Luis Márquez