none
BindingNavigator1とDataGridView1を関連付けたい RRS feed

  • 質問

  •     VB2005+SQLServer2005を使用しています。
        以下のコードは、インターネットで探したものを流用し少し変えています。
        会員と会員例歴テーブルのリレーションはとれており、1対多でDataGridView1とDataGridView2に
        表示されます。
       
        :質問です:

        BindingNavigator1とDataGridView1を関連付けたいのですが、どのようにすればよいのでしょうか。
        次に移動をクリックすると、DataGridView1を下に移動して欲しいのです。
        基本的な事を理解していないかと思いますが、よろしくお願いします。
       

        Private Shared Sub ConnectToData(ByVal connectionString As String)

            Using connection As SqlConnection = New SqlConnection(connectionString)

                Dim KaiinAdapter As SqlDataAdapter = New SqlDataAdapter()
                KaiinAdapter.TableMappings.Add("Table", "会員")

                connection.Open()

                Dim KaiinCommand As SqlCommand = New SqlCommand("SELECT * FROM 会員", connection)
                KaiinCommand.CommandType = CommandType.Text
                KaiinAdapter.SelectCommand = KaiinCommand
                Dim dataSet As DataSet = New DataSet()
                KaiinAdapter.Fill(dataSet)

                Dim KaiinRirekiAdapter As SqlDataAdapter = New SqlDataAdapter()
                KaiinRirekiAdapter.TableMappings.Add("Table", "会員履歴")
                Dim KaiinRirekiCommand As SqlCommand = New SqlCommand("SELECT * FROM 会員履歴", connection)
                KaiinRirekiAdapter.SelectCommand = KaiinRirekiCommand
                KaiinRirekiAdapter.Fill(dataSet)

                connection.Close()

                Dim parentColumn As DataColumn = dataSet.Tables("会員").Columns("管理NO")
                Dim childColumn As DataColumn = dataSet.Tables("会員履歴").Columns("管理NO")
                Dim relation As DataRelation = New System.Data.DataRelation("会員_履歴", parentColumn, childColumn)
                dataSet.Relations.Add(relation)

                With Form1
                    .DataGridView1.DataSource = dataSet
                    .DataGridView1.DataMember = "会員"
                    .DataGridView2.DataSource = dataSet
                    .DataGridView2.DataMember = "会員.会員_履歴"
                   
                    .BindingSource1.DataSource = dataSet                   ' これと
                    .BindingNavigator1.BindingSource = .BindingSource1     ' これが有効になってほしい
                                                                         
                End With

            End Using
        End Sub

    2007年5月9日 1:40

回答

  •  mitch さんからの引用

                With Form1
                    .DataGridView1.DataSource = dataSet
                    .DataGridView1.DataMember = "会員"
                    .DataGridView2.DataSource = dataSet
                    .DataGridView2.DataMember = "会員.会員_履歴"
                   
                    .BindingSource1.DataSource = dataSet                   ' これと
                    .BindingNavigator1.BindingSource = .BindingSource1     ' これが有効になってほしい
                                                                         
                End With

     

    以下のような感じで。

     

    Code Snippet

                With Form1

                   .BindingSource1.DataSource = dataSet
                    .BindingSource1.DataMember = "会員"

     

                    .DataGridView1.DataSource = BindingSource1
                    .DataGridView2.DataSource = BindingSource1
                    .DataGridView2.DataMember = "会員_履歴"

     

                    .BindingNavigator1.BindingSource = .BindingSource1

                End With

     

     

    2007年5月9日 2:45
    モデレータ
  • trapemiya様、ご回答ありがとうございます。

    いろいろと悩んだ末に投稿させてもらいました。

    解決いたしました。どうもありがとうございました。

     

    2007年5月9日 2:52

すべての返信

  •  mitch さんからの引用

                With Form1
                    .DataGridView1.DataSource = dataSet
                    .DataGridView1.DataMember = "会員"
                    .DataGridView2.DataSource = dataSet
                    .DataGridView2.DataMember = "会員.会員_履歴"
                   
                    .BindingSource1.DataSource = dataSet                   ' これと
                    .BindingNavigator1.BindingSource = .BindingSource1     ' これが有効になってほしい
                                                                         
                End With

     

    以下のような感じで。

     

    Code Snippet

                With Form1

                   .BindingSource1.DataSource = dataSet
                    .BindingSource1.DataMember = "会員"

     

                    .DataGridView1.DataSource = BindingSource1
                    .DataGridView2.DataSource = BindingSource1
                    .DataGridView2.DataMember = "会員_履歴"

     

                    .BindingNavigator1.BindingSource = .BindingSource1

                End With

     

     

    2007年5月9日 2:45
    モデレータ
  • trapemiya様、ご回答ありがとうございます。

    いろいろと悩んだ末に投稿させてもらいました。

    解決いたしました。どうもありがとうございました。

     

    2007年5月9日 2:52