210 likes | 294 Views
Neal Stublen nstublen@jccc.edu. C#: Introduction for Developers. 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.
E N D
Neal Stublen nstublen@jccc.edu C#: Introduction for Developers
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<Customer>(); varstr = "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 orderbyinvoice.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
Tab Control • Separate panels to group items • Tab across edge changes panel visibility