I’m working on a computer science project and need an explanation to help me understand better.
In this exercise, you’ll use LINQ to join the data in two List() objects and then display that data in a ListView control.
Design the form
- Open the LineItemProducts project in the Extra ExercisesChapter 23LineItemProducts directory. This project contains the Line Item Products form, along with the business and database classes and database files needed by the application.
- Add a ListView control to the form, and set the View property of this control to Details.
- Use the smart tag menu for the ListView control to display the ColumnHeader Collection Editor. Then, define the column headers for this control so they appear as shown above.
- Add an event handler for the Load event of the form. Then, use the GetLineItems method in the LineItemDB class to get a List (Of LineItem) object, and store this list in a variable.
- Define a query expression that returns all the line items from the line item list sorted by invoice ID. The select clause for this query expression should select entire line items.
- Use a For Each statement to execute the query and load the results into the ListView control.
- Test the application to be sure it displays the line items correctly.
- Add a statement to the Load event handler of the form that uses the GetProducts method of the ProductDB class to get a List(Of Product) object, and store the list in a variable.
- Modify the query expression so it joins the data in the line item list with the data in the product list and so the description field in the product list is returned instead of the product code in the line item list.
- Modify the For Each statement so it adds the product description instead of the product code to the ListView control.
- Test the application to be sure it displays the invoice data correctly.
- Declare a variable outside the for each statement to hold an invoice ID, and initialize this variable to 0. Then, add code within the For Each statement that checks if the invoice ID for the current item is equal to the invoice ID in the variable you just declared. If they aren’t equal, the invoice ID, invoice date, and invoice total should be added to the List View control, and the invoice ID variable should be set to the value of the invoice ID for the current item. Otherwise, an empty string should be added to the ListView control for this field.
- Test this change to be sure it works correctly.
Add code to display the line item data
Enhance the application to include the product description
Enhance the application so it doesn’t repeat the invoice ID