訪問して頂きありがとうございます。まさふくろーです。
この記事では、DataGridViewコントロールで選択されている行の値を取得する方法をご紹介します。
目次 [非表示]
DataGridViewコントロールで選択されている行の値を取得する
- DataGridViewコントロールで選択されている行の値を取得するには、DataGridViewRowオブジェクトのCurrentRowプロパティを使います。
- 選択している行から、各セルの値を取得するには、DataGridViewCellオブジェクトのValueプロパティを使います。
- DataGridViewCellオブジェクトは、DataGridViewRowオブジェクトのCellsプロパティから取得します。
- 書式は、以下になります。
DataGridView.CurrentRow.Cells(列のインデックス).Value
- 列のインデックスは、DataGridViewコントロールの左から順番に「0、1、2・・・」と割り振られます。
サンプルプログラム
DataGridViewに表示する処理
| 2 | 「注文データを表示」ボタンクリック時に以下処理を行う。 |
| 4~7 | 接続先データベースの情報を、変数に代入。 |
| 13 | SqlConnectionクラスのインスタンス化。(Usingステートメントでリソース開放を自動化) |
| 15~19 | ConnectionStringプロパティにデータベース情報を設定。 |
| 21 | データベースに接続。 |
| 23 | SqlCommandクラスのインスタンス化。(Usingステートメントでリソース開放を自動化) |
| 25 | SQL文を実行するために、15~19行目で設定したデータベース情報と同じ情報をConnection プロパティに設定。 |
| 27~31 |
レコードを抽出するSQL文をCommandTextプロパティに設定。 |
| 30行目の「@」マークは、以下33~34行目で設定するパラメータを使用する際に記述します。 | |
| 33 | 「SalesOrderHeader」テーブルの「SalesOrderID」列の開始番号に、値「71774」を設定する。 |
| 34 | 「SalesOrderHeader」テーブルの「SalesOrderID」列の終了番号に、値「71816」を設定する。 |
| 36 | SQL文(SalesOrderID列の値が71774~71816までのレコードを抽出する)を実行し、実行結果をSqlDataReader型の変数「dread」に代入。 |
| 38 | 変数「dread」の値が「True」の間(抽出したレコード件数分)、以下処理を繰り返す。 |
| 43 | 「SalesOrderID」列の列番号を取得し、Integer型の変数「iIdx」に代入。 |
| 44 | 「SalesOrderID」列の値を取得し、String型の変数「SalesOrder_ID」に代入。 |
| 46 | 「OrderDate」列の列番号を取得し、Integer型の変数「iIdx」に代入。 |
| 47 | 「OrderDate」列の値を取得し、String型の変数「Order_Date」に代入。 |
| 49 | 「DueDate」列の列番号を取得し、Integer型の変数「iIdx」に代入。 |
| 50 | 「DueDate」列の値を取得し、String型の変数「Due_Date」に代入。 |
| 52 | 「SalesOrderNumber」列の列番号を取得し、Integer型の変数「iIdx」に代入。 |
| 53 | 「SalesOrderNumber」列の値を取得し、String型の変数「SalesOrder_Number」に代入。 |
| 55 | DataGridViewコントロールにデータを表示する。 |
| 61 | DataGridViewコントロールの新規行(最終行)を非表示にする。 |
| 63 | 処理が正常に終了したら、正常終了のメッセージをラベルに表示する。 |
| 67 | 処理の実行中にエラーが発生した場合、 |
| 69 | エラー内容を取得し、ラベルに表示する。 |
DataGridViewの選択行の値を取得する処理
| 2 | 「DataGridViewの選択行の値を取得」ボタンクリック時に以下処理を行う。 |
| 8 | DataGridViewの選択行の1列目(注文No)の値を取得し、String型の変数「OrderNo」に代入。 |
| 10 | DataGridViewの選択行の2列目(注文日)の値を取得し、String型の変数「OrderDate」に代入。 |
| 12 | DataGridViewの選択行の3列目(納期)の値を取得し、String型の変数「DueDate」に代入。 |
| 14 | DataGridViewの選択行の4列目(製品No)の値を取得し、String型の変数「ProductNo」に代入。 |
| 16 | 上記8~14行目で取得した値を、ラベルに表示する。 |
| 18 | 処理の実行中にエラーが発生した場合、 |
| 20 | エラー内容を取得し、ラベルに表示する。 |
関連記事
テーブルのデータを抽出する
DataGridViewコントロールの新規行(最終行)を非表示にする
【VB.NET】DataGridViewコントロールの新規行(最終行)を非表示にするには?
データベースに接続
Usingステートメント
【VB.NET】UsingステートメントでDisposeメソッドの呼び出しを自動化する
構造化例外処理
最後まで読んでいただき、ありがとうございました!
本のまとめ関連記事はこちら