データセットの別フォームでの表示
- 題名: データセットの別フォームでの表示
- 著者: りょう
- 日時: 2005/10/24 15:52:01
- ID: 13431
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: データセットの別フォームでの表示
- 著者: なおこ(・∀・)
- 日時: 2005/10/24 16:32:43
- ID: 13433
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: データセットの別フォームでの表示
- 著者: りょう
- 日時: 2005/10/24 17:15:11
- ID: 13435
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: データセットの別フォームでの表示
- 著者: なおこ(・∀・)
- 日時: 2005/10/24 17:27:13
- ID: 13437
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: データセットの別フォームでの表示
- 著者: りょう
- 日時: 2005/10/24 17:37:07
- ID: 13438
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
お世話になっております。
下記の条件を満たすようなアプリを作成しようと思っています。
SQLサーバーからDataGridを使用して参照します。
そのDataGridのセルをダブルクリックすると、別フォームを立ち上げそこに
ダブルクリックされたデータを表示し編集出来るようにしたいです。
(Tabコントロールを使用し、各TabごとにDataGridを貼り付け、SQLサーバーからの
抽出をおのおののDataGridに表示する)
※別フォームへのDataSetなどの渡し方がわからなかったのでpublicで宣言して使用しています。
質問なのですが、現在おのおののDataGridに表示し、セルをダブルクリックしたときのDataGridとセルの位置は判別できるのですが、別フォームにアクセスした時にどのデータ
セットを使用するかわからなくなってしまいます。どうやって判断したらよいでしょうか?(下記の方法だと、最後に抽出したデータに対しては表示可能なのですが、別Tabを選択するとエラーとなってしまいます)
また、このようなことを行う方法でなにかいいサンプルなどございましたらお教えいただけないでしょうか。
以下ソース============================================================
Module:
Public SqlDataSet As DataSet
Public SqlDataAdapter As SqlClient.SqlDataAdapter
Public DataSetName() As String
Public DataSetCnt As Integer
FormA:
Private DbGrid() As System.Windows.Forms.DataGrid
Dim currentDbGrid As DataGrid = DirectCast(sender, DataGrid)
Dim i As Integer
Dim currentCell As DataGridCell = currentDbGrid.CurrentCell
Dim rno As Integer = currentCell.RowNumber
Dim cno As Integer = currentCell.ColumnNumber
Dim frm_ViewB As New frm_ViewB
Dim bmb As BindingManagerBase = currentDbGrid.BindingContext(currentDbGrid.DataSource, currentDbGrid.DataMember)
Dim dr As DataRow = CType(bmb.Current, DataRowView).Row
frm_ViewB.Label4.Text = currentDbGrid.Tag & ":" & rno & ":" & cno
'これはどの行列を示しているかラベルに渡してます
frm_ViewB.ShowDialog(Me)
FormB:
Private myDataSetCnt As Integer
Private myRowNumber As Integer
Private drow As DataRow
Private Sub frm_ViewB_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dim myA as string
dim myB as string
dim myC as string
Dim myArray As Array
Try
myArray = Split(Me.Label4.Text, ":")
myDataSetCnt = myArray(0)
myRowNumber = myArray(1)
drow = SqlDataSet.Tables(DataSetName(myDataSetCnt)).Rows.Item(myRowNumber)
myA = drow("A")
myB = drow("B")
myC = drow("C")
TextBox1.Text = myA
TextBox2.Text = myB
TextBox3.Text = myC
Catch ex As Exception
Me.Close()
End Try
End Sub
=====================================================================