PDA

View Full Version : relation+datagridview



mehdiDER_5
شنبه 29 اردیبهشت 1386, 21:38 عصر
با سلام خدمت دوستان محترم
من دو تا جدول دارم به نام aforms که نام شرکت ها در آن است و aname که نام مدیران شرکت ها در آن است و این دو تا جدول در داخل بانک هیچ رابطهای باهم ندارند حال میخواهم در داخل ویبی این دو جدول با هم ارتباط داشته باشند به طوری که من دوتا دیتاگرید تعریف کردهام که با کلید کردن بر روی یکی ار سطرهای گرید aforms اعضای شرکت در گرید دوم به نمایش در آید حال این جند خط برنامه را با کمک جستجو در سایت نوشتم ولی جواب نمیدهد
اشکال کار کجاست من برنامه ای شبیه این را در تالار c# دیدم ولی آن را نفهمیدم اگر میشود کمکم کنید و بگویید آیا این برنامه درست است و باید آن را در چه رویدادی ار گردید بنویسم اگر برنامه ای در این مورد دارید ممنون میشوم اینجا بگذارید

Imports System.Data
Imports System.Data.SqlClient

Public Class Form1
Friend WithEvents sqlconnection1 As New SqlConnection
Friend WithEvents insertcommand As New SqlCommand
Friend WithEvents cmdselect As New SqlCommand
Friend WithEvents ds As New managersDataSet
Friend WithEvents as1 As New managersDataSet
Friend WithEvents m1 As New BindingSource
Friend WithEvents m2 As New BindingSource
Friend WithEvents da1 As New SqlDataAdapter
Friend WithEvents da2 As New SqlDataAdapter
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sqlconnection1.ConnectionString = "server=(local);database=managers;integrated security=true;"
End Sub


Private Sub dd()


cmdselect.CommandType = CommandType.Text
cmdselect.CommandText = "Select * From aforms"
cmdselect.Connection = sqlconnection1
Dim builder1 As SqlCommandBuilder = New SqlCommandBuilder(da1)
da1.SelectCommand = cmdselect
da1.Fill(ds, "aforms")

cmdselect.CommandType = CommandType.Text
cmdselect.CommandText = "Select * From anames"
Dim builder2 As SqlCommandBuilder = New SqlCommandBuilder(da2)
da2.SelectCommand = cmdselect
da2.Fill(ds, "anames")


Dim d1 As DataColumn
Dim d2 As DataColumn
d1 = ds.Tables("aforms").Columns("id")
d2 = ds.Tables("anames").Columns("id")
Dim relation As New DataRelation("the", d1, d2)
ds.Relations.Add(relation)
m1.DataSource = ds
m1.DataMember = "anames"
m2.DataSource = m1
m2.DataMember = "the"


End Sub

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DataGridView1.DataSource = m1
DataGridView2.DataSource = m2
dd()
End Sub
End Class

behzad_gh
شنبه 29 اردیبهشت 1386, 22:45 عصر
مشکل شما در این قسمت هست :



m1.DataSource = ds
m1.DataMember = "anames"
m2.DataSource = m1
m2.DataMember = "the"

بجای anames اسم جدول aforms رو قرار بدهید مشکلتون حل می‌شه.
دقت داشته باشید که ریلیشن جدول aforms رو به جدول anames ربط می‌ده .
من کد رو تست کردم بقیه جاها هیچ مشکلی نداشت بغیر از دو خط زیر :


Friend WithEvents ds As New managersDataSet
Friend WithEvents as1 As New managersDataSet
که من بجای managersDataSet از Data.DataSet استفاده کردم البته اگر شما managersDataSet رو جای دیگری تعریف کرده باشید دیگه مشکلی نیست.

mehdiDER_5
شنبه 29 اردیبهشت 1386, 22:53 عصر
باتشکر از جواب به موقع شما دوست عزیز