• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DataGridViewでのソート制御)

DataGridViewでのソート制御

このQ&Aのポイント
  • DataGridViewでのソート制御について質問があります。
  • DataGridViewでNULLデータのソートを制御する方法を教えてください。
  • DataGridViewでのデータソート時にNULLを望ましい順序で表示する方法を知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

方法は2種類かな 1つは データソース自体にソート用の列を設ける もう一つは DataGridViewのSortメソッド用にIComparer インターフェイスを継承したクラスを作成して ソートメソッドに与えてやる このとき引数の Objct xが DBNullだったら DBNullのほうが大きいと返答をするよう SortメソッドはGridDataViewのColumnHeaderMouseClickイベントなどで使う感じだと思います ちょうど MSDNのColumnHeaderMouseClickイベントにソートの制御の例が載ってますよ ただこれは 別の列でソートする例ですけどね 後は GridDataViewのSort(IComparer)メソッドの例が参考になるかも 昇順の場合だけならまだ楽ですが、降順にソートする場合も考慮しないといけないのだと大変だと思いますよ

kspring
質問者

お礼

ご丁寧に回答ありがとうございます! 今回は時間が無いため、前者で行います。。。 本当後者のほうが、今後の為にもよさそうですが・・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VB.NET DataGridView.Sortについて

    VB.NET2005で DataGridView.Sortなるもので DataGridのデータをソートした後の Rowsでデータを取得しようとすると データNOthingになります。 何かいい手はないでしょうか?

  • DataGridView の sort

    DataGridView の sort メソッドなどで特定の列のソートを指定していると時、セルの内容を編集するたびに勝手にソートが起こってしまいます。これを止める方法はありますか? できそうで出来ないのです。 つまり、どの列にもソートが設定されていない最初の状態にしたいのです。SortedColumnプロパティは、ReadOnlyで設定できず、sort メソッドの引数にNothingを入れることもできません。。。 いったいどうしたら解除できるのですか??? お願いします!!

  • DataGridViewにて、ソート開始時に起こるイベントとは?

    VB.NETの質問です。 DataGridViewにて、ソート開始時にイベントを取得したいのですが、そのイベントが見つからず困っています。 ソート完了時ならば、「Sorted」イベントで可能なのですが、、 お分かりになる方がいらっしゃいましたが、ご教授宜しくお願いします。

  • DataGridViewでの変更を即時反映させなくするには?

    VB2005でWindowsアプリを開発しています。 同じDataTableの内容を二つのDataGridViewに表示し、 変更前、変更後というように変更箇所がわかるようにしたいです。 そして、更新ボタンが押下されたら、DataGridViewの変更箇所をDataTableに反映させて、データ(XMLファイル)を更新する、ということをしたいのです。 デフォルトの状態では、DataGridViewを変更したら、DataTableが更新されるため、両方のDataGridViewが同じ表示になってしまいます。 ですので、DataGridViewを変更されても、DataTableには反映させないようにしたいのですが、可能でしょうか? よろしくお願いいたします。

  • DataGridViewの複数列を連動してソートしたい。

    早速質問させていただきます。 VB2005+MSDE2000でWindowsアプリを作成しています。 Form上に非バインドのDataGridViewがあります。 日付、連番、名前の列を持っているとします。 非バインドのままで日付昇順で且つ連番昇順でソートする事は可能でしょうか? データベースから呼び出してきた時はこのようになっているのですが、追加などを行うと崩れてしまいます。 ご教授の程、よろしくお願い致します。

  • DataSetの内容がDataGridViewに反映されない

    現在、VB2005でアプリケーションの開発をしているのですが DataSetの内容がDataGridViewに反映されなくて困っています。 表示させたいデータをデータセットにとってくるところは問題ないようで 1回目は上手く表示されるのですが、データセットの中身を変更して セットし直しても表示が変わりません。 以下がソースを抜き出したものになります。 Grid.DataSource = Nothing Grid.DataMember = Nothing Grid.DataSource = DataSet Grid.DataMember = "M_kbn" よろしくお願いします。

  • VB.NET DataGridView Web連携

    VB.NETの開発でアプリの実行端末にDB接続の環境がない可能性を考えてWebアプリとの連携を考えています VB.NETで開発したフォームのDataGridViewに表示するデータをWebアプリ(ASP、サーブレットなど)と連携するためにはどうすれば良いですか? 考えているのは単純にURLにパラメータを付けてReqeustして結果をカンマ区切りなどで出力したデータをResponseし、一行ずつ分解してDataGridViewの項目に設定していけばいいのかな?って思っています。 他に良いやり方などあれば教えて頂きたいです。

  • C# DataGridView内での制御について

    初めて投稿します。 C#のwindowsアプリを開発しています。 開発ツールはVS2010を使用しています。 datagridview内の制御について困っているので 知恵を貸してください。 datagridviewのEditModeをEditOnEnterに設定し、常に入力モードにしています。 また、CellValidatingを使用し、各セルの必須チェックなどのエラーチェックを おこなっています。 Enterキー押下でCellValidatingイベントが発生し、エラーチェックを行う ことには問題ないのですが、矢印キーやマウスでのセル移動時にも、 CellValidatingイベントが発生します。 矢印キーやマウスでの操作の場合はCellValidatingイベントを発生させずに したいのですが、どうすればよいのでしょうか? 知っている方がいれば、知恵を貸してください。

  • VB.NET DataGridViewについて

    VB.NET DataGridViewで表示した4行のデータを1つとして結合したいです。 ご存知の方、教えてください。 環境: Windows XP Visual Studio2005 VB.NET

  • VB DataGridView 行削除

    Visualbasic 2010 を利用してWindowsFormアプリケーションを開発しております。 データベースはORACLE11を利用しております。 VB側よりOracleDataAdapterを利用してDatatableにORACLEのSELECT結果を格納しています。 DataGridViewには上記のDataTableをDataSourceとして割り当てております。 このDataGridViewに並び替え機能を組み込んでおります。 ※DataViewのSortを利用して並び替えを実現しております。 この後にDataGridViewの行削除を行うと以下の例外が発生します。 一意制約(XXX.PKY_テストデータ)に反しています Oracle.DataAccess.Client.OracleException これはDataTableをSortしたためOracleDataAdapterと一致しなくなったことが原因ではないかと推測しております。 DataGridViewの並び替えを行っても正常に行削除を行いDataTableにも反映する方法が分る方がいらっしゃいましたらご教授頂けないでしょうか。 VBソース抜粋 ・データ抽出 '/ SQLをOracleで実行した結果をデータアダプタに格納 Dadp5 = New OracleDataAdapter("SELECT * from テストデータ", CONFIG.Database) Dadp5.Fill(dt_test) Me.DataGridView_TEST.DataSource = dt_test ・並び替え(降順) Dim dv = New DataView(dt_test) dv.Sort = "テストコード DESC" dt_test = dv.ToTable Me.H_DataGridView_test.DataSource = dt_test ・行削除 Dim scBuilder As New OracleCommandBuilder(Dadp5) '/ データグリッドビューの編集内容をデータベースへ反映 '/ 生成されたSQLを実行する Dadp5.Update(dt_test) ※ここで例外が発生致します。 お手数おかけ致しますが宜しくお願い致します。 以上です。