- ベストアンサー
.NETで画面の絞込み表示について
- Windowsプログラム初心者のため、.NETとSQL Serverを使用して顧客一覧を表示するWindowsアプリを作成する際、絞り込み機能を実装したい。
- 絞り込み機能は、検索フィールドに入力された文字列に基づいて名前の一覧を絞り込むものであり、.NETのクラスライブラリや絞り込みロジック作成、DB検索のどれかを利用する必要がある。
- また、名前や住所などでのソートも必要であり、リストボックスが自動的にソートしてくれるかどうかが不明だ。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
データベースをどう扱うかはプログラマに依存します 1) SQLでデータを絞り込んで取得する 2) データベースからすべてを取得してDatTableで絞り込む 3) DataTableからDataViewを作成して絞り込む 1) なら発行するSQLに Where句を作成して絞り込みます 2) なら DataTableのSelectメソッドを使って絞り込みます 3) なら DataViewのコンストラクタに渡すパラメータで絞込みみます ソートに関しては表示するコントロール側にある機能を使う場合や DataViewなどでソートを行う場合などいろいろな場面があると思います
その他の回答 (1)
- anmochi
- ベストアンサー率65% (1332/2045)
・・・・う~ん。ちょっと質問の範囲が広すぎるというか。.Netの基礎から教えてくれるサイトもたくさんあるので、もう少し.Net Frameworkそのものについて情報を集めた上でプログラムの構造を検討してはどうかな。 ドラクエでもレベル1なのにラスボスを倒したいなんて言ったって無茶でしょう? スライムからいきましょう。 > "あ"と入れたら"あ"が先頭に付く名前の一覧に絞り込まれ、続けて"い"と入れたら"あい"が 「インクリメンタルサーチ」という奴ですな。「DataSet」、「DataTable」、「DataView」、「DataRow」あたりをキーワードに情報を集めてみましょう。 データの取得を「DataAdapter」でやるか「DataReader」でやるかなんてのも調べてみると良いかな。 ついでに「接続型」、「非接続型」、「コネクションプール」なんかも勉強の助けになる事でしょう。 接続をつかさどる仕組みとして、機能は少ないけど汎用的なOleDbConnectionを使うのか、SQL Serverべったりで高機能なSqlConnectionを使うのかも考えておくに越したことはないでしょう。 この辺はADO.NETの仕組みをある程度知ってないと何もできませぬ。 > .NETのクラスライブラリ等であるのでしょうか? キーワード「コントロールのデータソース」、「DataSourceプロパティとDataMemberプロパティ」。 「DataGridViewのデータソースをDataViewに、DataViewのデータソース(というかデータの大本)としてDataTableを」・・・・。 > 名前や住所、その他でソート(画面のタイトル部分をクリックしてソート)するのは、リストボックスがかってにやってくれるのでしょうか? .Net 1.1(VS.NET 2003)なら「DataGrid」、.Net 2.0(VS2005)以降なら「DataGridView」をキーワードに探してみると良いでしょう。ListBoxあるいはListViewでは難しいかもよ(できない事はないけど)。 > Windowsプログラミングに関してはかなり無知なので、どうかよろしくお願いします。 ん~。では何だったらできるの? その言語と.Netの概念の違いなんかは解説できるかも知れません。「○○言語で言う所の△△をイメージしてもらえれば良いです」とかね。
補足
早速ありがとうございます。 色々と言葉足らずで申し訳ありません。 .Netと言ってしまったのは広範囲でしたね。 .Net Framework上で、GUIアプリケーションを開発しようとしています。 言語は、C#を考えています。 .Net Framework、ADO.NET等、アーキテクチャ的なところは理解しています。 Windowsアプリは十数年前に少しやった程度で、それからはサーバメイン(Windows以外)のプログラムばかりです。 言語としてはたいてい(C、C++、JAVA、PHP等)は分かります。 C#は初めてですが、抵抗感はありません。 熟練プログラマの方は皆さん同じだと思いますが、言語的な問題はどうにでもなるのですが、ライブラリに関しては知らないと損をするというか、見つけるのに苦労して、ついつい自前で作ってしまう傾向にあるので、キーワード的なことをご教授頂けるだけでも、調べる手助けになると思っています。 JAVAにおいては、たいていのことは分かりますが、.Netのライブラリとは全然違うようなので、苦労しています。 > 。「○○言語で言う所の△△をイメージしてもらえれば良いです」 そうですね、Windowsアプリは殆どやったっことがないので(JAVAのSwing等でも)、JAVAでのWindowsアプリの例えも出てこないです。 基本的にHTML以外は、WidowsのGUIをやったことがないです。 データベースにおいては、JDBC、ODBC、OCI、oo4o等で、SQLでレベルで操作する方法はたいていのことは分かります。 できればSQL Serverに対し、JAVAにあるTorqueのようなことがC#できたり、Delphiのデータベースコンポーネントのようなことができることを期待しています。 どうかよろしくお願い致します。
補足
早速ありがとうございます。 検索でやりたいことは、C#.NETでSQL Serverに対し、まずは全件を取得し、「キーワードを一文字づつ入れていくと、どんどん絞り込まれて表示され、バックスペースで消すと元に戻っていく」みたいなことがやりたいです。 そこで気にしているのは、性能面です。 1文字づつ入れる度にSQLで検索するのはありえないのかなと思っています。 想定しているやり方としては、こんなことができないかなと。 ・全件のリストを、.Netの何らかのライブラリを使ってオブジェクトにほうり込む。 ・あとは、そのオブジェクトのメソッドで絞込みやソート等を自由に行うことができる。 このようなことをする場合は、3)が使えそうな気がするのですが、いかがなものかご教授頂ければと思います。 よろしくお願い致します。