Thanks for that. I WAS actually planning on creating a new form for each class. I can see now that that was madness.
Cerebrus wrote: > Laura, > > I agree with "The_Fruitman" on this... Your design appears to be so > deeply flawed (it violates the very tenets of programming) that it > seems that your actual problem at hand is insignificant in comparison. > I seriously hope we have misunderstood you and you are not using a > separate form for each class... sounds like there are atleast 51 of > these classes. > > On Jan 15, 8:10�pm, The_Fruitman <[email protected]> wrote: > > 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- Hide quoted text - > > > > - Show quoted text -
