• ベストアンサー

VB.NET2005 DataGridViewでレコードを絞り込んで表示

Form1のTextboxより入力した数字を元にForm2のload時にoracleDBをselectしDataGridviewのテーブルの中に作成した値と一致するものを絞り込んで表示したいと考えております。 メニューのプロジェクトからDataSetを選択し、必要なDBを選択しTableadapter等も利用しています。 DBから読み込んだものをそのまま表示するだけという事は出来ました。 テキストやネットを調べながら色々試してみましたが、うまくいかず煮詰まっています。 お力を貸してください。よろしくお願いします。

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

  • ベストアンサー
回答No.1

お世話になります。 TableAdapter から取ってきた DataTable を元に DataView を使って絞り込めばよいのでは? Dim dt As DataTable = New DataTable dt.Columns.Add("ID", GetType(Integer)) dt.Columns.Add("FRUIT", GetType(String)) dt.Rows.Add(New Object() {1, "りんご"}) dt.Rows.Add(New Object() {2, "もも"}) dt.Rows.Add(New Object() {3, "かき"}) dt.Rows.Add(New Object() {4, "みかん"}) Dim dv As DataView = New DataView(dt) dv.RowFilter = "FRUIT LIKE '%ん%'" '絞り込み Me.DataGridView1.DataSource = dt '全件 Me.DataGridView2.DataSource = dv '絞り込まれた結果(りんごとみかん)

参考URL:
http://www.atmarkit.co.jp/fdotnet/dotnettips/129dgfilter/dgfilter.html
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C# DataGridViewにデータを追加したい。

    C# DataGridViewにデータを追加したい。 DataGridViewにレコードを追加したいのですが、Formのロードイベントで以下コードを実行しています。 // テーブルを作成 DataSet dataSet1 = new DataSet("商品マスター"); DataTable dataTable1 = dataSet1.Tables.Add("製品テーブル"); DataColumn dataClumn1 = dataTable1.Columns.Add("ID", typeof(int)); DataColumn dataClumn2 = dataTable1.Columns.Add("名前", typeof(int)); // テーブルにデータを追加 dataTable1.Rows.Add(new Object[] { 1, name1}); dataTable1.Rows.Add(new Object[] { 2, name2}); dataGridView1.DataSource = dataTable1; としています。 Formにボタンを配置し、ボタンクリック時にテキストボックス[txtProName]のデータを レコード追加したいのですが、記入の仕方がわかりません。 まず、 DataSet dataSet1 = new DataSet("商品マスター"); DataTable dataTable1 = dataSet1.Tables.Add("製品テーブル"); をロードイベントメソッドに記入しているのも問題がありそうなのですが、 良く理解できません。 ボタンイベントでデータを挿入する方法等、記入方法のご教授よろしくお願いいたします。 当方、超初心者なので、出来れば、ソースコードもお願いいたします。m(_ _)m

  • c#によるdatasetからdatagridviewの操作

    C#を始めたばかりの初心者です。 今いろいろ最初からボタンをセットしたり徐々に進んでいるのですが、今datasetとdatagridviewの場所でつまずいています。 デザイン上でデータセットをセットしdatatableテーブル名(abc)をつけcolumnにa,b,c,d,eと5つ列を追加しました。 そしてdatagridviewを制作しデータソースの選択で上記で作ったdatasetを割り当てました。 そのあとが質問なのですが、datasetにa,b,c,d,eにデータをtextboxから5個入力し。datasetに追加できたら次々とdatagridviewに表示させていき、ある程度までたまったら選択した行のeを更新してみたいのですが。 インターネットを探しているとmdbなどアクセスなどとつなげてるのが多かったのですが、アクセスなどのソフトとつなげないとこの内容は無理だったりするのでしょうか。 Visual C#2005逆引き大全で勉強しているのですがもしよければプログラミング方法など教えていただけたら幸いです。

  • DataGridViewでDBを読み込むには?

    VB.NET2005とoracleにより、プログラムを組んでいます。 FormにDataGridViewを貼りDBを読み込み表示させるプログラムを作りたいと思っています。 しかし、DBのすべての列を表示させるのではなく、選択したの列だけGridViewに表示させたいのですが、可能でしょうか? どのようなプログラムにすればよろしいでしょうか? DBすべてなら表示できましたが、選択列だけの場合は色々試してみましたがうまく行きませんでした。 お力を貸していただけませんか? よろしくお願いします。

  • VB.netのTableAdapter.Inser

    VB.netについて質問です。 TableAdapter.InsertQueryについて質問になります。 ・データセットに紐づいているDataGridViewからTableAdapter.InsertQueryを利用してDBに登録したい。 ・DBに登録されているIDcodeデータとDataGridViewのIDcodeデータを比較し、DataGridViewのIDcode重複データは除いてDBに登録したい。 (1)現在のコードですと同じものを再度登録すると主キーエラーが出てしまいます。 DBではIDcodeを主キーにしております。 (2)SQLでWHERE NOT EXISTS文をいれている(重複ははじいているつもり)のですがダメです。 皆様のお知恵をお貸しください。 【DBのカラム】 date, IDcode 【現在のコード】 If TableDataGridView.RowCount = 1 Then MsgBox("登録するデータがありません") Else For Each dr As DataRow In DataSet1.Tables(0).Rows Me.TableTableAdapter.InsertQuery(dr("date"), dr("IDcode")) Next Me.Close() End If 【InsertQuery(@date, @IDcode)の中身】 INSERT INTO [dbo].[Table] ([date], [IDcode]) VALUES (@date, @IDcode); SELECT date, IDcode FROM [dbo].[Table] WHERE NOT EXISTS(SELECT * FROM [dbo].[Table] WHERE [IDcode] = @IDcode) order by IDcode どうぞよろしくお願いいたします。

  • DataSetについて

    下記のようなDataSetを使用した処理質問致します。 TableAdapterのデザイン時にてSELECTCommandで SELECT 'AA' AS 名前 FROM M_マスタ と、記述してDataGridView1に反映しようとしても実際にテーブルに入っているデータがそのまま表示されてしまいます。 このように固定の値を取得する方法はどのようにしたらよろしいのでしょうか?そもそもできないのでしょうか? Dim ds As New DataSet1 Dim Ta As New DataSet1TableAdapters.M_マスタTableAdapter 'テーブルアダプタを利用してデータを読み込む Ta.Fill(ds.M_マスタ) Me.DataGridView1.DataSource = ds Me.DataGridView1.DataMember = "M_マスタ"

  • データベースを更新したい(VB2008)

    VB2008でつくったアプリケーションでAccessのデータを更新したいです。DataGridView1でデータを表示させ更新ボタン押下時にデータ(Accessのテーブル)を更新したいです。 DataGridView1でデータを表示することはできましたが、「更新」押下に更新されません。 Accessのテーブル名は「01データです」 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me._01データTableAdapter.Fill(Me.年賀状DataSet._01データ) End Sub Private Sub 更新_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 更新.Click With DataGridView1 .Update()     End With     MsgBox("更新しました") End Sub

  • プロジェクト内で共通のDataSetの作成方法

    VS2005 C#を学んでいる者です。よろしくお願いします。 プロジェクト内で共通に使えるDataSetの作成方法について教えてください。 NorthWind . Customers テーブル用に Form1およびDataGridView1を作成します。 このForm1には ウィザードで northwindDataSet1 が作成されています。 NorthWind . Orders テーブル用に Form2およびDataGridView2を作成します。 このForm2には ウィザードで northwindDataSet2 が作成されています。 この他に、MainMenuを作成して、Form1およびForm2の画面を開きます。 Form2 では、CustomerID を入力しますが、この入力が Customers テーブルに存在するかチェックしたいと思います。 northwindDataSet1, northwindDataSet2の2つではなく、  1つのDataSetに Customersテーブル、Ordersテーブルを読み込めば、 Form2からCustomersテーブルを参照およびチェックができると思うのですが、  上記のようにウィザードでは、別々にDataSetが作成されてしまいます。  ウィザードで作成された部分で、DataSet以外は残して、  プロジェクトの2フォームから参照できる1つのDataSetを作成したいのですがやり方がわかりません。 MainMenuに DataSetを貼り付けて、これを、  Form1の bindSourceオブジェクトのDataSourceプロパティで参照できるかと思いましたができませんでした。 Form1で、 northwindDataSet1を返すメソッドを作成して、  Form2で、Form1をnewして、そのメソッドを呼び出すとできると思いますが、  2つのDataSetにデータを読み込んでいると考えられるので、避けたいと考えています。  どなたかご教示をお願いします。

  • VB2010 DataSet 更新

    VB2010で社員名簿を作成しています。Form1にDataGridViewを使って名簿を作成し、Form2で更新のボタンを押します。 次のようにプログラムを作成しましたが、更新できません。エラーも出ません。 DataRowをdeleteで消して、それを保存する方法です。 どこが悪いのでしょうか。ご存知の方はご教授いただけませんでしょうか。 ’新年度につきForm1の社員名簿のDATAを初期化する Dim j As Integer For j = 0 To Form1.DataGridView1.Rows.Count - 1 Form1.DataSet1.社員名簿.Rows(j).Delete() Next ’ 初期化した社員名簿を保存する Form1.社員名簿TableAdapter1.Update(Form1.DataSet1.社員名簿)

  • DataGridViewで表示に制限をつけたい。

    VB2005、SQLServer2005環境です。 DataGridでDBのレコードを表示しています。 フォームのデザイナに、データソースに表示されている テーブルをドラッグしただけでなので、現在は以下のように なってます。 Private Sub TestForm_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.Load Me.testTableAdapter.Fill(Me.DataSet.test) End Sub レコードが少なければ問題ないのですが、10万や20万と増えて くると、これでは表示に時間がかかります。 (実際には数百程度しかデータは入らないのですが)。 DataGridViewに表示するレコードの数を200件程度にして、それ以上は スクロールさせた時に表示するような形式にしたいと思うのですが、 それを実現するための方法を教えていただけないでしょうか? できましたら、サンプルコードを交えて教えていただけると助かります。 宜しくお願いします。

  • datagridviewに表示させたい

    はじめまして。最近VBをやりはじめ、行き詰まったのでお知恵を貸して下さい。 環境:VB2008,oracle11g dim view as string view = " select * from テーブル名" me.datagridview1.visible = true view と me行の間に、datagridview1に表示させるように定義したいのですが、 どうすれば表示される様になりますでしょうか?