Hello I am using vb.net and sqlite database, for my project I need to be able to select value from parent combobox that should be connected to one of my tables in the database, once value been chosen the program would filter the child combobox for related values. Any help will be much appreciated even if its a hint.
What I have tried:
<pre><pre lang="vb"> Dim data As DataSet = Me.GetDataSet()
Me.BindingSource1.DataSource = data
Me.BindingSource1.DataMember = "RoomType"
Me.BindingSource2.DataSource = Me.BindingSource1
Me.BindingSource2.DataMember = "ParentChild"
Me.cmbRoomType.DisplayMember = "RoomTypeName"
Me.cmbRoomType.ValueMember = "RoomTypeID"
Me.cmbRoomType.DataSource = Me.BindingSource1
Me.cmbRoomNumber.DisplayMember = "RoomNumber"
Me.cmbRoomNumber.ValueMember = "RoomID"
Me.cmbRoomNumber.DataSource = Me.BindingSource2
End Sub
Private ConStr As String = "Data Source=dbNEAProject.db"
Private Function GetDataSet() As DataSet
Dim data As New DataSet
Dim parent As DataTable = Me.GetRoomType()
Dim child As DataTable = Me.GetRoomNumber()
data.Tables.Add(parent)
data.Tables.Add(child)
data.Relations.Add("ParentChild", parent.Columns("RoomTypeID"), child.Columns("rRoomTypeID"))
End Function
Private Function GetRoomType() As DataTable
Dim sql As String = "Select RoomTypeName, RoomTypeID FROM RoomType INNER JOIN ROOMS ON rooms.rRoomTypeID = roomType.RoomTypeID "
Dim table As New DataTable("RoomType")
Using con As New SQLiteConnection(ConStr)
con.Open()
Using da As New SQLiteDataAdapter(sql, con)
da.Fill(table)
End Using
End Using
Return table
End Function
Private Function GetRoomNumber() As DataTable
Dim sql As String = "Select RoomID, RoomNumber FROM Rooms INNER JOIN bookedrooms ON bookedrooms.brRoomID = rooms.RoomID INNER JOIN roomtype ON roomtype.roomtypeid = rooms.rroomtypeid where bookedrooms.brBookingID is null;"
Dim table As New DataTable("RoomNumber")
Using con As New SQLiteConnection(ConStr)
con.Open()
Using da As New SQLiteDataAdapter(sql, con)
da.Fill(table)
End Using
End Using
Return table
End Function
CREATE TABLE RoomType(
RoomTypeID INTEGER PRIMARY KEY autoincrement,
RoomTypeName VARCHAR(50),
Capacity INTEGER,
RoomPrice REAL
);
<pre lang="SQL">CREATE TABLE Rooms(
RoomID INTEGER PRIMARY KEY,
RoomNumber INTEGER,
Ensuite VARCHAR (10),
rRoomTypeID INTEGER NOT NULL,
FOREIGN KEY (rRoomTypeID) REFERENCES RoomType(RoomTypeID)
);