If I understand you correctly, you're trying to do is fetch data from
the server to populate the second dropdown. So don't think Relations,
think WHERE clause in your SELECT statement. If you've already fetched
the data into another DataTable in the DataSet, then you can set the
relations.
--Mary
On Sun, 16 May 2004 21:16:02 -0700, "Ravi"
<an*******@discussions.microsoft.com> wrote:
I am trying to represent master-detail records from a database.
The general logic will be populating the first dropdownlist with the master records and on change of the first dropdownlist
getting the selectedindex and querying the database and populating the childrecords in the second dropdownlist.
But my question is how the same can be acheieved by using "Relations"?
The following code fragment i tried, but i have no idea how to proceed.
Thanks in advance
Ravichandran
Dim myconn As String
Dim oledataadapt As New OleDbDataAdapter
Dim oledataadapt1 As New OleDbDataAdapter
Dim ds As New DataSet
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
myconn = "Provider=MSDAORA;User ID=x;Password=x;Data Source=xxx;"
oledataadapt = New OleDbDataAdapter("Select Organization_id from bengine.cb_organization", myconn)
oledataadapt.Fill(ds, "Sector")
oledataadapt1 = New OleDbDataAdapter("Select Superbu_id, organization_id from bengine.cb_super_businessunit", myconn)
oledataadapt1.Fill(ds, "SBU")
ds.Relations.Add("Sec_sbu", ds.Tables("Sector").Columns("Organization_id"), _
ds.Tables("SBU").Columns("Organization_id"))
If Not IsPostBack Then
DropDownList1.DataSource = ds.Tables(0).DefaultView
DropDownList2.DataSource = ds.Tables(1).DefaultView
DropDownList1.DataMember = "Organization_id"
DropDownList2.DataMember = "superbu_id"
DropDownList1.DataTextField = "Organization_id"
DropDownList1.DataValueField = "Organization_id"
DropDownList2.DataTextField = "superbu_id"
DropDownList2.DataValueField = "superbu_id"
DropDownList1.DataBind()
DropDownList2.DataBind()
End If
End Sub
Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
Dim i As Integer
i = DropDownList1.SelectedIndex
DropDownList2.DataSource = ds.Tables(0).Rows(i).GetChildRows("Sec_sbu")
DropDownList2.DataTextField = "superbu_id"
DropDownList2.DataValueField = "superbu_id"
DropDownList1.DataBind()
DropDownList2.DataBind()
End Sub