【VB.NET】DataGridViewコントロールのコンボボックスで選択した値を取得するには?

訪問して頂きありがとうございます。まさふくろーです。

この記事では、DataGridViewコントロールのコンボボックスで選択した値を取得する方法をご紹介します。

DataGridViewコントロールのコンボボックスで選択した値を取得する

  • DataGridViewコントロールのコンボボックスで選択した値を取得するには、DataGridViewRowオブジェクトのRowsプロパティを使います。
  • 各セルの値を取得するには、DataGridViewCellオブジェクトのValueプロパティを使います。
  • DataGridViewCellオブジェクトは、DataGridViewRowオブジェクトのCellsプロパティから取得します。
  • 書式は、以下になります。

DataGridView.Rows(行番号).Cells(列のインデックス).Value

  • 列のインデックスは、DataGridViewコントロールの左から順番に「0、1、2・・・」と割り振られます。

サンプルプログラム

DataGridViewに表示する処理

2 「注文データを表示」ボタンクリック時に以下処理を行う。
4~7 接続先データベースの情報を、変数に代入。
9 DataGridViewComboBoxColumn型の変数「column」を宣言、インスタンス化。
13~16 「DataGridView」コントロールのコンボボックスに設定する項目を追加。
18 「DataGridView」コントロールの1列目に列を挿入する。
20 「DataGridView」コントロールの列ヘッダーに「種類」を表示する。
22 SqlConnectionクラスのインスタンス化。(Usingステートメントでリソース開放を自動化)
24~28 ConnectionStringプロパティにデータベース情報を設定。
30 データベースに接続。
32 SqlCommandクラスのインスタンス化。(Usingステートメントでリソース開放を自動化)
34 SQL文を実行するために、24~28行目で設定したデータベース情報と同じ情報をConnection プロパティに設定。
36~40
レコードを抽出するSQL文をCommandTextプロパティに設定。
39行目の「@」マークは、以下42~43行目で設定するパラメータを使用する際に記述します。
42 「SalesOrderHeader」テーブルの「SalesOrderID」列の開始番号に、値「71774」を設定する。
43 「SalesOrderHeader」テーブルの「SalesOrderID」列の終了番号に、値「71816」を設定する。
45 SQL文(SalesOrderID列の値が71774~71816までのレコードを抽出する)を実行し、実行結果をSqlDataReader型の変数「dread」に代入。
47 変数「dread」の値が「True」の間(抽出したレコード件数分)、以下処理を繰り返す。
52 「SalesOrderID」列の列番号を取得し、Integer型の変数「iIdx」に代入。
53 「SalesOrderID」列の値を取得し、String型の変数「SalesOrder_ID」に代入。
55 「OrderDate」列の列番号を取得し、Integer型の変数「iIdx」に代入。
56 「OrderDate」列の値を取得し、String型の変数「Order_Date」に代入。
58 「DueDate」列の列番号を取得し、Integer型の変数「iIdx」に代入。
59 「DueDate」列の値を取得し、String型の変数「Due_Date」に代入。
61 「SalesOrderNumber」列の列番号を取得し、Integer型の変数「iIdx」に代入。
62 「SalesOrderNumber」列の値を取得し、String型の変数「SalesOrder_Number」に代入。
64 DataGridViewコントロールにデータを表示する。(コンボボックスにはデータを表示しないので「Empty値」を設定)
70 DataGridViewコントロールの1列目(コンボボックス)の幅を70ピクセルにする。
72 処理が正常に終了したら、正常終了のメッセージをラベルに表示する。
76 処理の実行中にエラーが発生した場合、
78 エラー内容を取得し、ラベルに表示する。

DataGridViewのコンボボックスの値を取得する処理

2 「DataGridViewコントロールのコンボボックスの値を取得」ボタンクリック時に以下処理を行う。
11 DataGridViewの行数を取得し、Integer型の変数「dgvRowCnt」に代入
13 DataGridViewの行数分、以下処理を繰り返す。
15 コンボボックスの値を取得し、String型の変数「ComboValue」に代入。
17 取得した値が「Empty」値でない場合、
19 DataGridViewの行数とコンボボックスの値を、String型の変数「str」に追加していく。
25 処理が完了したら、コンボボックスに値が設定されている行数と値をラベルに表示する。
27 処理の実行中にエラーが発生した場合、
29 エラー内容を取得し、ラベルに表示する。

関連記事

DataGridViewコントロールにコンボボックスを表示する

【VB.NET】DataGridViewコントロールにコンボボックスを表示するには?

DataGridViewコントロールの列の幅を変更する

【VB.NET】DataGridViewコントロールの列の幅を変更するには?

DataGridViewコントロールの行数を取得する

【VB.NET】DataGridViewコントロールの行数を取得するには?

DataGridViewコントロールにデータを表示する

【VB.NET】DataGridViewコントロールにデータを表示するには?

テーブルのデータを抽出する

【VB.NET】テーブルのレコードを抽出するには?

データベースに接続

【VB.NET】データベースに接続するには?

Usingステートメント

【VB.NET】UsingステートメントでDisposeメソッドの呼び出しを自動化する

構造化例外処理

【VB.NET】構造化例外処理とは?

最後まで読んでいただき、ありがとうございました!

本のまとめ関連記事はこちら