- PR -

DBGridでクリックしたセルの内容を取得する方法を教えてください

1
投稿者投稿内容
わく
ベテラン
会議室デビュー日: 2004/07/13
投稿数: 60
お住まい・勤務地: 九州
投稿日時: 2004-08-23 09:36
こんにちは
現在、DBGridを使用してDBを更新しようと思っているのですが
クリックしたセルの内容及び項目名をどうすれば取得できるかが
分からないのでSQL文を作成できません。
どなたかご教授をお願いします。

【使用環境】
 Windows2000
VisualBasic .net 2003
True DBGrid トライアル版
SQLServer Version 5.0

【ソース】
Private Sub DBUpdate()
Dim objConnect As New SqlClient.SqlConnection
Dim objReader As SqlClient.SqlDataAdapter
Dim objDataset As New DataSet

Dim m_strsql As String = ""

Try
'DBに接続
objConnect.ConnectionString = "********"
objConnect.Open()

'SQL文を作成
'ここでm_strsqlにUPDATEするSQL文を入れたい

'データを抽出する
objReader = New SqlClient.SqlDataAdapter(New SqlClient.SqlCommand(m_strsql, objConnect))
objReader.Fill(objDataset, m_strgamen)

'Datasetをxmlに出力
Dim clsxml As New clsWriteXml
clsxml.Writexml(m_strgamen, objDataset)

Catch ex As Exception
'エラー処理
End Try
End Sub
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2004-08-23 09:52
おはようございます。
さかもと、と申します。

@フォーム上にグリッドが表示されている
Aそのグリッドをクリックした時に、そのレコードの項目を取得する
 
ということで宜しいでしょうか?

True DBGrid トライアル版 ?というものについては知識がないのですが
VB.NET標準のデータグリッド(標準という呼び方も良いのか悪いのか分かりません・・・)
では下記のように行っています。
-------------------------------------------------------
'/Gridを行選択モードにする(選択時に1行全部が選択される)
'/これは選択時に見やすくしているだけです
DBGridA.Select(DBGridA.CurrentRowIndex)

'/例)選択されたレコードの「区分」と「コード」を変数へ代入
'数値0はそのグリッド上の一番左の項目
'数値1はそのグリッド上の左から2番目の項目
Kbn = DBGridA.Item(DBGridA.CurrentCell.RowNumber, 0)
Code = DBGridA.Item(DBGridA.CurrentCell.RowNumber, 1)
--------------------------------------------------------
上記で取得した値を元にSQL文を作成しています。

見当違いならすいません。
わく
ベテラン
会議室デビュー日: 2004/07/13
投稿数: 60
お住まい・勤務地: 九州
投稿日時: 2004-08-23 10:33
返信ありがとうございます。
さかもとさんの助言を参考にコードを作ってみます。
わく
ベテラン
会議室デビュー日: 2004/07/13
投稿数: 60
お住まい・勤務地: 九州
投稿日時: 2004-08-23 11:12
さかもとさんの助言を参考にコードを組んでみたところ
変更後の値を取得することが出来ましたがどうしても
DBのどの項目かを取得することができません。
すいませんがご教授お願いできますか。

【ソースコード】
Dim kbn As String = ""
Dim atai As String = ""
atai = Me.C1TrueDBGrid1.Item(Me.C1TrueDBGrid1.SelectedRows.Count,e.C1TrueDBGrid1.SelectedCols.Count)
MsgBox("値:" & atai) ’ここで値を確認しました

ちなみに画面は、DataGridと同じような感じになっています
わく
ベテラン
会議室デビュー日: 2004/07/13
投稿数: 60
お住まい・勤務地: 九州
投稿日時: 2004-08-23 11:39
すいません
なぞが解けたので報告します

まず、C1TrueDBGrid1_Changeイベントで
m_row = Me.C1TrueDBGrid1.DestinationRow
m_col = Me.C1TrueDBGrid1.DestinationCol
を宣言しておいて

C1TrueDBGrid1_AfterColUpdateイベントで
Dim kbn As String = ""
Dim atai As String = ""
atai = Me.C1TrueDBGrid1.Item(m_row, m_col)
kbn = Me.C1TrueDBGrid1.Columns.Item(m_col).ToString
MsgBox("区分:" & kbn)
MsgBox("値:" & atai)
とすることで情報を取得できました。
どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)