sql:
//SELECT Instructor_Registration.Inst_Class_ID, Modules.Module_Code Classes.Class_Name Term.Term_Name - Instructor_Registration.Class_Session AS ClassName
//FROM Modules, Term, Classes, Instructor_Registration
//WHERE Classes.Class_ID = Instructor_Registration.Class_ID
//and Term.Term_Number = Classes.Term_Number and Term.Term_Number > & current_term & and Classes.Class_Start_Date <= getdate()
//and Modules.Module_Code = Classes.Module_Code and Ucase(Instructor_Registration.Instr_Login_ID)=Ucase('" & i_id & "')
code:
Instructor_DB.HelperClasses.ResultsetFields fields = new Instructor_DB.HelperClasses.ResultsetFields(5);
fields.DefineField(Instructor_DB.InstructorRegistrationFieldIndex.InstClassId, 0, "InstClassId", "InstClassId");
fields.DefineField(Instructor_DB.ModulesFieldIndex.ModuleCode, 1, "ModuleCode", "ClassName");
fields.DefineField(Instructor_DB.ClassesFieldIndex.ClassName, 1, "ClassName", "ClassName");
fields.DefineField(Instructor_DB.TermFieldIndex.TermName, 1, "TermName", "ClassName");
fields.DefineField(Instructor_DB.InstructorRegistrationFieldIndex.ClassSession, 1, "ClassSession", "ClassName");
IPredicateExpression filter = new PredicateExpression();
////
//WHERE Classes.Class_ID = Instructor_Registration.Class_ID
filter.Add(new FieldCompareExpressionPredicate(Instructor_DB.FactoryClasses.EntityFieldFactory.Create(Instructor_DB.ClassesFieldIndex.ClassId),
ComparisonOperator.Equal, new Expression(Instructor_DB.FactoryClasses.EntityFieldFactory.Create(Instructor_DB.InstructorRegistrationFieldIndex.ClassId)), "InstClassId"));
//and Term.Term_Number = Classes.Term_Number
filter.AddWithAnd(new FieldCompareExpressionPredicate(Instructor_DB.FactoryClasses.EntityFieldFactory.Create(Instructor_DB.TermFieldIndex.TermNumber),
ComparisonOperator.Equal, new Expression(Instructor_DB.FactoryClasses.EntityFieldFactory.Create(Instructor_DB.ClassesFieldIndex.TermNumber)), "ClassName"));
//and Term.Term_Number > current_term
filter.AddWithAnd(Instructor_DB.FactoryClasses.PredicateFactory.CompareValue(Instructor_DB.TermFieldIndex.TermNumber, ComparisonOperator.GreaterThan, current_term, "ClassName"));
//and Classes.Class_Start_Date <= getdate()
filter.AddWithAnd(Instructor_DB.FactoryClasses.PredicateFactory.CompareValue(Instructor_DB.ClassesFieldIndex.ClassStartDate, ComparisonOperator.LessEqual, DateTime.Now, "ClassName"));
//and Modules.Module_Code = Classes.Module_Code
filter.AddWithAnd(new FieldCompareExpressionPredicate(Instructor_DB.FactoryClasses.EntityFieldFactory.Create(Instructor_DB.ModulesFieldIndex.ModuleCode),
ComparisonOperator.Equal, new Expression(Instructor_DB.FactoryClasses.EntityFieldFactory.Create(Instructor_DB.ClassesFieldIndex.ModuleCode)), "ClassName"));
//and Upper(Instructor_Registration.Instr_Login_ID) = Upper('" + i_id + "');
filter.AddWithAnd(Instructor_DB.FactoryClasses.PredicateFactory.CompareValue(Instructor_DB.InstructorRegistrationFieldIndex.InstrLoginId, ComparisonOperator.Equal, i_id, "ClassName"));
DataTable dynamicList = new DataTable();
Instructor_DB.DaoClasses.TypedListDAO dao = new Instructor_DB.DaoClasses.TypedListDAO();
dao.GetMultiAsDataTable(fields, dynamicList, 0, null, filter, null, true, null, null, 0, 0);