
いつもお世話になっております。
DataGridViewに関して、選択されているレコードをDataRow型で別フォームに渡してから、各項目をテキストボックスに表示したいのですがうまくいきません(DataRow型にこだわっているわけではないのですが、レコード1件丸ごと取得する型を他に知らないので例として挙げました)。
DataGridViewのCurrentRowプロパティや、SelectedRows(0)をDataRow型に代入する試みをしましたが、型変換できませんでした。
DataGridViewで選択されているレコード一件まるごと変数に渡す方法というのはあるのでしょうか?
ちなみに、SelectionModeはSelectFullRowに、MultiSelectはFalseにしてあります。
ご存知の方ご教授いただけると助かります。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
>おっしゃるとおりやってみたのですが、どうもやはり型変換ができませんでした。
>参照しているのはDataTable型なわけですから、DataRowも取り出せそうな気はするのですが。。。
えー・・・スイマセン
今度はコーディングして確認してみたところ、
なにやら、1ステップすっ飛ばしていました
下記の手順にて取得可能です
[C#]
System.Windows.Forms.DataGridViewRow dgr = this.DataGridView1.CurrentRow;
System.Data.DataRowView drv = (System.Data.DataRowView)dgr.DataBoundItem;
System.Data.DataRow dr = (System.Data.DataRow)drv.Row;
[VB2005]
Dim dgr As System.Windows.Forms.DataGridViewRow = Me.DataGridView1.CurrentRow
Dim drv As System.Data.DataRowView = CType(dgr.DataBoundItem, System.Data.DataRowView)
Dim dr As System.Data.DataRow = CType(drv.Row, System.Data.DataRow)
※最後のキャストを変更すれば、型付データセットにも対応可能のはずです
すばらしくご丁寧に相談に乗って頂き本当に感謝しています。
おっしゃる方法で無事DataRowを取得する事が出来ました!
無事解決しました。
型の意識も今後よりいっそうしてレベルアップし行きたいと思います!
ありがとうございました!
No.2
- 回答日時:
DataRowにこだわるのであれば、現在行のDataGridViewRowをまず取得して、その行の主キーの値で、DataTableのFindメソッドかSelectメソッドで検索すれば、現在行のDataRowが取り出せると思うので試してみてはどうですか。
同じ方法ではありませんが、currentrowのindexを取り出して、datagridviewのrows(index)でもdatarowを取得する事が出来ました!
おっしゃる方法も試してみたいと思います!
ありがとうございました!
No.1
- 回答日時:
型を意識してみると幸せになれますよ
DataGridView.CurrentRow プロパティ
System.Windows.Forms.DataGridViewRow
DataGridView.SelectedRows プロパティ
System.Windows.Forms.DataGridViewSelectedRowCollection
↓(型を理解したら)
DataGridViewRow.DataBoundItem プロパティ
System.Object
行に値を読み込むデータ バインド オブジェクトを取得します。
以上により、下記のように記述することができます
※実際に使用できるかどうかまでは確認していません
[C#]
System.Windows.Forms.DataGridViewRow dgr = this.DataGridView1.CurrentRow;
System.Data.DataRow dr = (System.Data.DataRow)dgr.DataBoundItem
[VB2005]
Dim dgr As System.Windows.Forms.DataGridViewRow = Me.DataGridView1.CurrentRow
Dim dr As System.Data.DataRow = CType(dgr.DataBountItem, System.Data.DataRow)
ご回答いただきありがとうございました。
そうですね、暗黙の型変換に頼っている部分があり、どうにかなってくれという考え方は危険だなと改めて思いました。
おっしゃるとおりやってみたのですが、どうもやはり型変換ができませんでした。
参照しているのはDataTable型なわけですから、DataRowも取り出せそうな気はするのですが。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
C# DataTableに最後に追加した行をDataGridView上で選択状態にする方法は?
C言語・C++・C#
-
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
C# DataGridView のヘッダーセル中央揃え
C言語・C++・C#
-
-
4
CloseとDisposeの違い
Visual Basic(VBA)
-
5
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
6
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
7
VB.NET DataGridView 縦スクロールバーを常に表示
Visual Basic(VBA)
-
8
VB.net
Visual Basic(VBA)
-
9
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
10
DataGridViewの内容をDBに反映する時
Visual Basic(VBA)
-
11
DataGridViewのデータの引渡しについて
Visual Basic(VBA)
-
12
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
13
C# DataGridViewで複数選択したセルに同じ値を一括で入力するには
C言語・C++・C#
-
14
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
15
DataGridViewにてセル以外をクリックしたか判別
Visual Basic(VBA)
-
16
C# 別なフォームへ値を渡す (初心者です)
その他(プログラミング・Web制作)
-
17
DataGridView 列ごとの入力制限
Visual Basic(VBA)
-
18
VB2005 DataGridView上でクリックを無効にする方法はありますか?
Visual Basic(VBA)
-
19
DataGridViewの各セル幅を自由に決め、その幅で固定したい
Visual Basic(VBA)
-
20
DataGridViewに空白がある場合はエラーにしたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSPのNULLレコード表示について...
-
カレントレコードが無い事を判...
-
ADO VBA 実行時エラー3021
-
ACCESSで大量の更新を行うと「...
-
postgresql DELETE後commit...
-
ACCESSで「16389予約済みエラー...
-
レコード長を数えてくれる関数
-
レコードが存在しなかった場合
-
DataGridViewにてセル以外をク...
-
固有レコード識別子の選択とは
-
差し込み印刷のレコード数について
-
[VBA] ADOの Clone と AddNew
-
ファイル書込みで一行もしくは...
-
SYLKファイルフォーマットについて
-
エラー番号=5 制約を有効にで...
-
Accessでレコードの更新を任意...
-
アクセスでレポートの1印刷内...
-
GROUP BYを行った後に結合した...
-
OracleのSQL*PLUSで、デー...
-
Oracleでの文字列連結サイズの上限
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DataGridViewの、選択されてい...
-
ファイル書込みで一行もしくは...
-
レコードが存在しなかった場合
-
ADO VBA 実行時エラー3021
-
JSPのNULLレコード表示について...
-
差し込み印刷のレコード数について
-
アクセスでレポートの1印刷内...
-
DataGridViewの内容をDBに反映...
-
サブフォームに新規レコードを...
-
ACCESSで大量の更新を行うと「...
-
カレントレコードが無い事を判...
-
ワードの差込印刷で教えて下さ...
-
[VBA] ADOの Clone と AddNew
-
サブレンジ分割されたNDB(富士...
-
固有レコード識別子の選択とは
-
データセットのレコード更新が...
-
レコードセット(ADO.Recordset)...
-
ヘッダレコードとトレーラレコ...
-
Access を×ボタンで閉じ...
-
ACCESS VBA テーブルデータに...
おすすめ情報