【VB.NET】DataGridViewコントロールで選択されている行の値を取得するには?

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

この記事では、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 エラー内容を取得し、ラベルに表示する。

関連記事

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

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

DataGridViewコントロールの新規行(最終行)を非表示にする

【VB.NET】DataGridViewコントロールの新規行(最終行)を非表示にするには?

データベースに接続

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

Usingステートメント

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

構造化例外処理

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

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

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