2011-02-25 22 views
1

データグリッドビューを含むフォームがあります。基本的に、このフォームはデータベースからクライアントに問い合わせるために使用されます。ユーザーが検索を実行すると、その結果がDGVに表示されます。私は、ユーザーが自分が望むクライアントをクリックし、別のフォームで情報を見ることができるようにしたい。新しいクライアントがDBに追加されると、一意のIDが与えられますので、実際に情報でフォームを開くときに使用します。しかし、その行をクリックしてDGVからそのIDを取得するにはどうすればいいですか?C#:DataGridViewからの値の取得

ありがとうございます。

+0

申し訳ありませんが、私は誰もが忘れていたことを言いました。最初にクライアント名でクライアントを検索します。ユーザーはテキストボックスに名前を入力し、検索ボタンをクリックします。データベースはその名前で照会されます。検索されたクライアントは、DGVにリストされます。そこから、ユーザーが探しているクライアントを選択すると、情報が表示されたフォームがポップアップします。 混乱して申し訳ありません – jquirante

+0

...あなたのdatagridviewにID列(可視または非表示)がありますか? – Jonathan

答えて

0

Unique-IDをItemCollectionのタグ付きオブジェクトとして設定します。

はこれを試してみてください:

DataGridView.Items[n].Tag = (object)YOUR_UNIQUE_ID 

(もちろん同じコマンドあなたのidをしたい場合)

0

CTypeを使用して、DataGridViewのから行の主キーの値を取得します。以下はその一例です:

Name = CType(dgview.FindControl("lblname"),Label).Text 

上記の値を取得した後、そのキーで検索するクエリを作成します。データベースからID値を取得した後、再度DataGridViewをバインドして、検索結果を表示します。

+0

'CType'はVB.NETでしか利用できないことに注意してください(でもそこには' DirectCast'が必要です)。質問はC#についてです。これは異なるスタイルのキャストを必要とします。 –

0

がFullRowSelectにSelectionModeプロパティを設定し、グリッドの設定...お手伝いを致します。

私はあなたがそれで、あなたはグリッドのCellMouseDoubleClickイベントを処理する必要があります

GrdClients.DataSource = ListsOfClients 

のようなものを使用してのDataGridViewにデータをロードすることとします。もし以前のconfigure FullRowSelectにSelectionModeプロパティとして、あなたが今

Client ClientElement = GrdRequests.SelectedRows[0].DataBoundItem 
ShowClientForm(ClientElement.Id) 
0

まず選択したクライアントを抽出することができ、あなたはDGVは、ID列が含まれていることを確認する必要があり
(あなたは、Visibleプロパティをfalseに設定することで、それを隠す場合があります) 0あなたのクライアントIDを含む列のインデックスです
(VBのため申し訳ありませんが、実際のコードからペーストをコピー)

If e.RowIndex < 0 Then Exit Sub
Dim id as integer = dgv.Item(0, e.RowIndex).Value

: はその後、あなたはDGV.CellClickイベントを処理する必要があります。

+0

dvg.itemにインデックスの代わりに列名を使用するオーバーロードがあります。可能であれば、列名を使用してください。 – Jonathan

+0

もちろん、私は知っている知っている... – ufoq

関連する問題