none
DataGridView で表示順序 RRS feed

  • 質問

  • DataGridView で表示順序はどのように指定するのでしょう

    SQL文でOrder句を指定しても意味なさそうだし

    このあたりのことはどのDoc.を読めばいいでしょう

     

    2010年4月11日 9:27

回答

  • ご質問の範囲が広範囲で回答しにくいのですが、データベースからレコードを抽出しているのであれば、最終的にはDataViewの並びになります。 なぜなら最終的にDataViewがバインドするからです。この並びはCurrecyManagerによって管理されており、それをラップしているBindingSourceをデータソースに指定しているのであれば、BindingSourceで並び順を指定することができます。

    SQLでOrder句を指定することは意味がないわけではありません。その結果として作成されたDataTableをデータソースに指定すれば、その順序でDataGridViewに表示されます。これはそのDataTableのDefaultViewが自動的にDataGridViewにバインドすることによって実現されています。DefaultViewを使用せず、新しい並び順のDataViewを作成し、それをDataGridViewのデータソースに明に指定すれば、その順序でDataGridViewに表示されます。

    DataGridView --- DataView --- DataTable --- DataBase

    が基本です。バインドを管理しているのがCurrencyManagerで、それをラップして扱いやすくしているのがBindingSourceです。この辺りを調べてみられると良いでしょう。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク BestOsaka 2010年4月12日 8:44
    2010年4月11日 12:55
    モデレータ

すべての返信

  • ご質問の範囲が広範囲で回答しにくいのですが、データベースからレコードを抽出しているのであれば、最終的にはDataViewの並びになります。 なぜなら最終的にDataViewがバインドするからです。この並びはCurrecyManagerによって管理されており、それをラップしているBindingSourceをデータソースに指定しているのであれば、BindingSourceで並び順を指定することができます。

    SQLでOrder句を指定することは意味がないわけではありません。その結果として作成されたDataTableをデータソースに指定すれば、その順序でDataGridViewに表示されます。これはそのDataTableのDefaultViewが自動的にDataGridViewにバインドすることによって実現されています。DefaultViewを使用せず、新しい並び順のDataViewを作成し、それをDataGridViewのデータソースに明に指定すれば、その順序でDataGridViewに表示されます。

    DataGridView --- DataView --- DataTable --- DataBase

    が基本です。バインドを管理しているのがCurrencyManagerで、それをラップして扱いやすくしているのがBindingSourceです。この辺りを調べてみられると良いでしょう。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク BestOsaka 2010年4月12日 8:44
    2010年4月11日 12:55
    モデレータ
  • trapemiyaさん

    ありがとうございました

    BindingSourceに Order句をつけて 希望どおりになりました

    DataGridViewは 私には 難しすぎます

    いつの日か使いこなせる日が来るのでしょうか?

    BestOsaka

    2010年4月12日 8:50