Jan 02, 2016
How does XMLReader work?
XmlReader.Read()Advances to next nodeXmlReader properties access node name,
value, attributes, etc.Returns false if there are no additional
nodes
Reading XML FilesXmlReader 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
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<Customer>();
var str = "Hello"; // str is string typestr = 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 Expressionsfrom [type] element in collection
join element2 in collection2on key1 equals key2
where condition // any boolean expression
orderby expression [ascending|descending]
select columnExpressionselect new [type] { name=value, name=value }
LINQ Expressionsfrom cust in customers
join invoice in invoiceson cust.CustomerID equals invoice.CustomerID
where invoice.InvoiceDate < sixtyDaysAgo
orderby invoice.InvoiceTotal descending
select
Try it with CustomerImport Create a List<Customer> object by
looping through SqlDataReader Perform LINQ queries on
List<Customer>
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
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