Neal Stublen
How does XMLReader work? XmlReader.Read() Advances to next node XmlReader properties access node name, value, attributes, etc. Returns false if there are no additional nodes
Reading XML Files XmlReader r = XmlReader.Create(path, settings); r.ReadToDescendant(nodeName); do { r.ReadStartElement(nodeName); r.ReadElementContentAsString(); } while (r.ReadToNextSibling(nodeName)); r.Close();
Code Practice Create a new project called CustomerImport Import Customers into a List<> from any.xml file Fill a TreeView with the Customer data
Review TreeView XmlReader
var Data Type We can declare a variable as type “var” instead of using a specific data type The compiler assigns an implicit data type at compile-time (not run-time) var value = 0; var array = new string[10]; var list = new List (); var str = "Hello"; // str is string type str = 6; // can’t assign int
What’s LINQ? SQL-like query expression on any enumerable object type int[] numbers = new int[100]; for (int index = 0; index < 100; ++index) { numbers[index] = index; } var odds = from number in numbers where number % 2 != 0 select number;
Try it in LINQPad Duplicate code from previous slide Filter out prime numbers from array using LINQ query
LINQ Expressions from [type] element in collection join element2 in collection2 on key1 equals key2 where condition // any boolean expression orderby expression [ascending|descending] select columnExpression select new [type] { name=value, name=value }
LINQ Expressions from cust in customers join invoice in invoices on cust.CustomerID equals invoice.CustomerID where invoice.InvoiceDate < sixtyDaysAgo orderby invoice.InvoiceTotal descending select
Try it with CustomerImport Create a List object by looping through SqlDataReader Perform LINQ queries on List
LINQ-to-SQL Create objects that represent database entities Use the same LINQ query expressions against a database Just restricts “where” clause to SQL- compatible operations
See It In Action
LINQ on Database Objects Add LINQ data objects to a project Drop tables from Server Explorer Use the new DB to query the database using LINQ Insert, Update, Delete objects, db.SubmitChanges() Add related items, db.SubmitChanges() Paging: (from…).Skip(5).Take(5)
LINQ’d Customer-Invoice List Using LINQ objects, fill a list view with all invoices sorted by CustomerName
ToolTips and HelpProviders Add ToolTip control Set ToolTip property on each control and/or the form Hover over control to show tool tip Add HelpProvider control Set the HelpString on each property and/or the form Press F1 while the control has focus to show help string
Tab Control Separate panels to group items Tab across edge changes panel visibility