Please tell me you aren't building a separate form for each class. This is a bad design and should be avoided at all costs because of several issues (these are the ones that quickly come to mind): 1. What happens when a new class is added? Will you have to build another form? 2. What happens if a class has been removed? Do you need to remove or hide the form? 3. Having each class as a separate form means that you have duplicate code all over the place, this is also something that should be avoided. For one reason, if you have to make modifications to the code, you have to change it in multiple areas.
If you must display the listing of students for a selected class in another form there are other ways to do it. For example you may pass the selected class id to the attendance form. This would allow you to use the same form for all your classes (a much better design). On the form load of the attendance form you would grab the passed in class id and use it as a parameter in your sql statement to populate your dataset. From there you can then do your adding of information from the dataset to the listbox or whatever other controls you wish to populate witih the information. On Jan 14, 9:01 am, Laura <[email protected]> wrote: > Hi, > > I have a database with a Student table and a Class table. A number of > students are members of a particular class. > > On my windows form I need to display student names in a listbox. I > then have a different form for each class. So for example (as per code > below) this form is for Class51. The code I have so far is reading in > all student names into the listbox. I need it to read in the names of > those students in Class51. > > Each class has a classID. I know in SQL I would simply say SELECT * > FROM STUDENT WHERE CLASSID = 8, but what do I need to add to my code > here. > > Any help would be really appreciated. > > Private Sub frmAttendace51_Load(ByVal sender As System.Object, ByVal e > As System.EventArgs) Handles MyBase.Load > > 'clear data set of any existing data > objDataSet.Clear() > 'fill schema > objStudentDA.FillSchema(objDataSet, SchemaType.Source, > "tblStudent") > 'fill data set with info from data adapter > objStudentDA.Fill(objDataSet, "tblStudent") > > 'fill the data set with info from tblClass > objClassDA.FillSchema(objDataSet, SchemaType.Source, > "tblClass") > objClassDA.Fill(objDataSet, "tblClass") > > 'fill the data set with info from tblClass > objAttendanceDA.FillSchema(objDataSet, SchemaType.Source, > "tblAttendance") > objAttendanceDA.Fill(objDataSet, "tblAttendance") > > 'setup the relationship > objDataSet.Relations.Clear() > objDataSet.Relations.Add("Class2Student", _ > objDataSet.Tables("tblClass").Columns > ("ClassID"), _ > objDataSet.Tables > ("tblStudent").Columns("ClassID")) > objDataSet.Relations.Add("Student2Attendance", _ > objDataSet.Tables > ("tblStudent").Columns("StudentID"), _ > objDataSet.Tables > ("tblAttendance").Columns("StudentID")) > > lstStudents51.Items.Clear() > > Dim i As Integer > Dim strSurname As String > Dim strFirstName As String > For i = 1 To objDataSet.Tables("tblStudent").Rows.Count > strSurname = objDataSet.Tables("tblStudent").Rows(i - > 1).Item("SName") > strFirstName = objDataSet.Tables("tblStudent").Rows(i - > 1).Item("FName") > lstStudents51.Items.Add(strSurname + ", " + strFirstName) > Next > > lstStudents51.SelectedIndex = 0
