.NETで画面の絞込み表示について

このQ&Aのポイント
  • Windowsプログラム初心者のため、.NETとSQL Serverを使用して顧客一覧を表示するWindowsアプリを作成する際、絞り込み機能を実装したい。
  • 絞り込み機能は、検索フィールドに入力された文字列に基づいて名前の一覧を絞り込むものであり、.NETのクラスライブラリや絞り込みロジック作成、DB検索のどれかを利用する必要がある。
  • また、名前や住所などでのソートも必要であり、リストボックスが自動的にソートしてくれるかどうかが不明だ。
回答を見る
  • ベストアンサー

.NETで画面の絞込み表示について

Windowsプログラム初心者です。 今.NETとSQL Serverで、顧客一覧を表示するようなWindowsアプリを作ろうとしています。 その中の機能で、検索フィールドに"あ"と入れたら"あ"が先頭に付く名前の一覧に絞り込まれ、続けて"い"と入れたら"あい"が先頭に付く名前の一覧に絞り込まれたりするようにしたいと思っています。 このような絞込みをうまくやってくれる機能が.NETのクラスライブラリ等であるのでしょうか? それとも、自分で絞込みロジックを作るか、その都度DB検索をしなければならないのでしょうか。 また、名前や住所、その他でソート(画面のタイトル部分をクリックしてソート)するのは、リストボックスがかってにやってくれるのでしょうか? Windowsプログラミングに関してはかなり無知なので、どうかよろしくお願いします。

  • blavo
  • お礼率54% (56/102)

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

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

データベースをどう扱うかはプログラマに依存します 1) SQLでデータを絞り込んで取得する 2) データベースからすべてを取得してDatTableで絞り込む 3) DataTableからDataViewを作成して絞り込む 1) なら発行するSQLに Where句を作成して絞り込みます 2) なら DataTableのSelectメソッドを使って絞り込みます 3) なら DataViewのコンストラクタに渡すパラメータで絞込みみます ソートに関しては表示するコントロール側にある機能を使う場合や DataViewなどでソートを行う場合などいろいろな場面があると思います

blavo
質問者

補足

早速ありがとうございます。 検索でやりたいことは、C#.NETでSQL Serverに対し、まずは全件を取得し、「キーワードを一文字づつ入れていくと、どんどん絞り込まれて表示され、バックスペースで消すと元に戻っていく」みたいなことがやりたいです。 そこで気にしているのは、性能面です。 1文字づつ入れる度にSQLで検索するのはありえないのかなと思っています。 想定しているやり方としては、こんなことができないかなと。 ・全件のリストを、.Netの何らかのライブラリを使ってオブジェクトにほうり込む。 ・あとは、そのオブジェクトのメソッドで絞込みやソート等を自由に行うことができる。 このようなことをする場合は、3)が使えそうな気がするのですが、いかがなものかご教授頂ければと思います。 よろしくお願い致します。

その他の回答 (1)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 ・・・・う~ん。ちょっと質問の範囲が広すぎるというか。.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の概念の違いなんかは解説できるかも知れません。「○○言語で言う所の△△をイメージしてもらえれば良いです」とかね。

blavo
質問者

補足

早速ありがとうございます。 色々と言葉足らずで申し訳ありません。 .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のデータベースコンポーネントのようなことができることを期待しています。 どうかよろしくお願い致します。

関連するQ&A

  • SQLでの絞り込み検索

    はじめて参加します。 SQL初心者の古屋と申します。 絞り込み検索をしたいのですが、先に進まず困っています。 どうぞアドバイスをよろしくお願いします。 あるテーブルから1回目の検索条件でヒットしたものを表示させる。 次に、その中から2回目の検索条件を入力して、結果を表示させる。 (ポイントは、一度検索した結果を出してから、次の検索条件を入力させたい) この絞り込みを何回でもやりたいのです。 一時テーブルも試したのですが、検索する回数分一時テーブルが必要になるのではだめだと思い、 断念しました。 テーブル値関数を使ったら良さそうだと思ったのですが、能力不足のため先に進まず困っています。 どうかアドバイスをよろしくお願いします。 環境は、Windows 2000 Serverで、SQL Server 2000を使用しています。

  • PHPで絞り込み検索結果の件数を表示する

    同じ質問が数多くあるようですが、どうにもうまくいかない為恐縮ですが質問させて頂きました。 私はPHPとMYSQLを使ってホームページを作成しております。 やりたいことは、DBのTBに数百ある情報をPHPで幾つかの条件で絞り込み検索をかけることで、それ自体はできたのですが、何件の結果が抽出されたかを表示することができません。 例:○○件の検索結果が表示されました。 ←こんな感じにしたいのです。 他の質問を参考に以下のように記述をしたのですがどうにもうまくいきません。 $sql ="SELECT*FROM estate WHERE 価格 BETWEEN $price1 AND $price2'"; print 'sql_num_fields( $sql ) . "\n"件の検索結果が表示されました'; どのような点が問題なのか教えていただけますでしょうか? できればソースを教えていただけると助かります。

    • ベストアンサー
    • PHP
  • データベースの絞り込み検索について

    現在、sqlサーバーにてフォーム上にデータセットして、データを検索するシステムを作成中です。 データの更新や読込、変更等については、うまく動作しているのですが、検索・抽出についてうまくできません。 例えば、コンボボックスを2個配置して、絞り込み検索をかけようとするのですが、1個目でデータバインドされた項目を選択し、2個目では1個目に該当するデータのみを抽出させたいのです。 うまく伝えられないのですが、エクセルの機能でいえばオートフィルタのような動作です。 どのようにすれば良いのでしょうか?

  • 検索結果に対する絞込み

    お世話になってます。 検索条件で絞り込んだ結果に対して、さらに絞込みをかける方法を教えてください。 検索条件を持ち歩いてもいいのですが、30個近くあるのでセッションを使うことにしたのですが、うまくいきません。 具体的には ID 名前 住所 地区 1 山田 東京 関東  2 佐々木 東京 関東 3 鈴木 埼玉 関東 4 岡田 大阪  関西 最初に「関東」を検索条件に検索すると表示画面に3件表示されます。 セッションテスト1($_SESSION["test1"])には検索後の3件のIDを登録しました。 次に表示画面には検索条件のテキストフィールドがあり、「東京」と入力すると2件表示されます。 具体的にはセッションテスト1に値がセットされていれば $kensaku=$_SESSION["test1"]; $sql="SELECT *from test1 where ID=$kensaku and 住所=東京"; としています。 ここまでは絞込みがうまくいき表示できたのですが 戻るボタンで戻ったとき、「埼玉」といれて検索をかけると、1件表示させたいのですが $_SESSION["test1"]に値がセットされていて、 先ほど「東京」で絞り込んだ結果に検索をかけているので、表示されません。 不動産などのサイトを見るとパラメーターで渡しているのですが、セッションを使う方法ではできませんでしょうか。 わかりにくい文章で申し訳ないのですが、 検索結果に対して、さらに検索を何度もかけるという方法を教えていただければ助かります。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ASPで開発したHPはNetscapeでも見れるのでしょうか

    DBより簡単な検索を行い、HP上に検索結果の一覧を表示するHPを作成しようと考えて います。 DBはSQL Serverを使用し検索ロジックをASPで開発した場合、NetscapeでHPを見ても ちゃんと表示されるのでしょうか。 ASPを使用するのは検索だけを考えています又、何か他の問題点は無いのでしょうか。 どなたかご回答を宜しくお願い致します。

  • Accessのチェックボックスでチェックしたデータのみ更新するには。

     Access2000で顧客管理のDBを作っています。年齢などの条件をフォームから入力し、抽出結果をレポートで出力しています。この度、顧客情報のテーブルに「最終DM発送日」というフィールドを追加したいと考えています。  顧客の抽出は主に、DM発送の顧客の絞込みのため行っています。抽出した顧客一覧をフォームで表示し、顧客毎にチェックボックスを設け、実際DMを送ったかどうかのチェックを行いたいのです。が、チェックボックスで得た結果の使い方がよくわかりません。どのように、テーブルに反映したらよいのでしょうか?  どうかよろしくお願い致します。

  • DBの実行計画って?

    先日、開発者求人の面接に行ってきました。 顧客のDBを解析、DBの検索機能を最適化して、パッケージで納品・・・というようなことを行う企業なのですが、 そこで「DBの実行計画にはどんな種類がありますか?」という質問を受けました。 (え?DBの実行計画の種類? SQL実行する前にEXPLAINとか、で実行計画見て、コストが低くなるように 色々やったことはあるけど、実行計画の種類って?) という感じで何を聞かれているのか見当が付かず、答えられませんでした。 分かる方、教えてください! 何を聞かれたのでしょう? また、なんと答えればよかったのでしょう? ※ちなみに、その企業の扱っているDBはOracle,postgres,SQL server 等  顧客に合わせて何でも扱うみたいです。

  • SQLiteのデータベースについて

    PHP初心者です。以下のSQLiteより作成するデータベースについて教えてください。 $DB = sqlite_open('db1.db'); $sql="create table tables(id integer ,name,texts)"; $result=sqlite_query($db,$SQL); 上記、プログラムにより、同ディレクトリに、db1.dbが作成されますが、このデータベース情報はどのようにして、閲覧するのでしょうか(MS-ACCESS、SQLのように簡単に閲覧できないのか)。主キーやテーブルの名前またはフィールドの名前の変更、データ一覧閲覧などどのようにするのでしょうか。 環境は、Windows環境で、PHP4を使用しております。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 絞込み検索の一覧ページを作りたいのですが。。。

    雑貨店を経営しております。現在店頭商品をネットで販売しようと考えホームページビルダー16でページをつくり同梱されていたダビンチカート3にてショッピングカートをつけています。 ・ホームページビルダー  →  基本ページ ・ダビンチカート       →  カートの中画面以降のページ等。 という感じです。 ダビンチカートでは検索ボックスのフォームをホームページビルダーに設置できキーワード検索したカテゴリーをサーバーにアップしたデータベースからWEB上にて絞り込み一覧ページとして表示する機能があります。 ですが私がしたいのは基本ページにカテゴリーを表示してお客さんがクリックするとその絞込み一覧ページを表示させたいと思っています。 例) レディス → 親カテゴリー 「レディス」 の一覧ページ    ジャケット → 親カテゴリー 「レディス」 の中のカテゴリー「ジャケット」のみ表示 というような感じです。 ここで質問です。 1.上記内容を構築する大雑把なアウトラインを教えてください。 2.必要なツールがあれば教えてください。 3.私は現在HTMLとCSS.は簡単に理解しておりますが上記内容にてこれから何を順番に勉強していけばよろしいでしょうか? どうぞよろしくお願いいたします。

  • rails3初心者 金額から絞り込み検索

    rails3を勉強中です。 ご教授いただけば幸いです。 実装したい事: DBに登録してあるproductsの一覧から金額を指定して絞り込み検索をしたい 解決してない事: indexに検索結果が表示されません。 コードの書き方をご教授いただければ幸いです。 ==================== views: ==================== <%= form_tag ({:controller => :products, :action => :search_price }), {:method => :post} do %> 価格指定 <%= text_field_tag "price1" %> ~  <%= text_field_tag "price2" %> <%= submit_tag "検索"%> <% end %> ==================== products_controller.rb ==================== def search_price @products = Product.all @product = Product.new @products.each do |product| item = product.price >= params[:price1].to_i && product.price <= params[:price2].to_i if item @product = product end end render :action => 'index' end ==================== views/products/index.html ==================== <% @products.each do |product| %> <%= product.name %> <%= product.price %> <% end %>

    • ベストアンサー
    • Ruby

専門家に質問してみよう