<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel xmlns:blog="http://www.dotnetnuke.com/blog/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
    <title>LINQ</title>
    <description>Tips and Tricks on LINQ</description>
    <link>http://devshed.us/Blogs/tabid/227/BlogId/9/Default.aspx</link>
    <language>en-US</language>
    <webMaster>steve@4penny.net</webMaster>
    <pubDate>Sat, 19 May 2012 19:07:32 GMT</pubDate>
    <lastBuildDate>Sat, 19 May 2012 19:07:32 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 4.0.0.0</generator>
    <item>
      <title>Read an XML documents with a Parent/Child relationship into a class</title>
      <link>http://devshed.us/Blogs/tabid/227/EntryId/1029/Read-an-XML-documents-with-a-Parent-Child-relationship-into-a-class.aspx</link>
      <description>&lt;p&gt;The task here is to take an XML document in this form:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&lt;transfers&gt;      &lt;br /&gt;    &lt;transfer transferNumber="TSFR001"&gt;       &lt;br /&gt;       &lt;timestamp&gt;2011-03-14 11:24:47.077&lt;/timestamp&gt;       &lt;br /&gt;       &lt;items&gt;       &lt;br /&gt;           &lt;item&gt;       &lt;br /&gt;               &lt;itemguid&gt;6A639774-5EA9-440C-978B-FDC7DBF71949&lt;/itemguid&gt;       &lt;br /&gt;               &lt;quantity&gt;1&lt;/quantity&gt;       &lt;br /&gt;               &lt;fromsite&gt;001&lt;/fromsite&gt;       &lt;br /&gt;               &lt;tosite&gt;002&lt;/tosite&gt;       &lt;br /&gt;           &lt;/item&gt;       &lt;br /&gt;           &lt;item&gt;       &lt;br /&gt;               &lt;itemguid&gt;D8FD406F-8CF2-47E6-B09D-E44106153C11&lt;/itemguid&gt;       &lt;br /&gt;               &lt;quantity&gt;1&lt;/quantity&gt;       &lt;br /&gt;               &lt;fromsite&gt;001&lt;/fromsite&gt;       &lt;br /&gt;               &lt;tosite&gt;002&lt;/tosite&gt;       &lt;br /&gt;           &lt;/item&gt;       &lt;br /&gt;       &lt;/items&gt;       &lt;br /&gt;    &lt;/transfer&gt;       &lt;br /&gt;    &lt;transfer transferNumber="TSFR002"&gt;       &lt;br /&gt;       &lt;timestamp&gt;2011-03-14 11:24:47.077&lt;/timestamp&gt;       &lt;br /&gt;       &lt;items&gt;       &lt;br /&gt;           &lt;item&gt;       &lt;br /&gt;               &lt;itemguid&gt;6A639774-5EA9-440C-978B-FDC7DBF71949&lt;/itemguid&gt;       &lt;br /&gt;               &lt;quantity&gt;2&lt;/quantity&gt;       &lt;br /&gt;               &lt;fromsite&gt;001&lt;/fromsite&gt;       &lt;br /&gt;               &lt;tosite&gt;002&lt;/tosite&gt;       &lt;br /&gt;           &lt;/item&gt;       &lt;br /&gt;           &lt;item&gt;       &lt;br /&gt;               &lt;itemguid&gt;D8FD406F-8CF2-47E6-B09D-E44106153C11&lt;/itemguid&gt;       &lt;br /&gt;               &lt;quantity&gt;2&lt;/quantity&gt;       &lt;br /&gt;               &lt;fromsite&gt;001&lt;/fromsite&gt;       &lt;br /&gt;               &lt;tosite&gt;002&lt;/tosite&gt;       &lt;br /&gt;           &lt;/item&gt;       &lt;br /&gt;       &lt;/items&gt;       &lt;br /&gt;    &lt;/transfer&gt;       &lt;br /&gt;&lt;/transfers&gt;&lt;/font&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;And parse it and move it into a class that we can manipulate in VB.&lt;/p&gt;  &lt;p&gt;The class structure mirrors the XML document:&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f32ee4b3-f173-4d6c-b5bc-c275351d82b3" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #fff; max-height: 500px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Transfer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; transferNumber&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; timestamp &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;DateTime&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; transferDetail &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;List&lt;/span&gt;(&lt;span style="color:#0000ff"&gt;Of&lt;/span&gt; &lt;span style="color:#2b91af"&gt;TransferDetail&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; test &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;List&lt;/span&gt;(&lt;span style="color:#0000ff"&gt;Of&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Class&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;TransferDetail&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; itemguid &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Guid&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; quantity &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Double&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; fromsite &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; tosite &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Class&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Our code loads the XML into an XDocument, and then uses LINQ queries to read it into an instance of the class.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:492275fb-3228-4833-a213-a7cff9a0ce0b" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #fff; max-height: 500px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Sub&lt;/span&gt; example()&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; xDoc &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;XDocument&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; eDoc &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;XElement&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; oTransfer &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Transfer&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; oTransferDetail &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;TransferDetail&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;        &lt;span style="color:#008000"&gt;'load an XML document into an xElement type&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        eDoc = &lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;transfers&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                   &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;transfer&lt;/span&gt; &lt;span style="color:#b96464"&gt;transferNumber&lt;/span&gt;&lt;span style="color:#6464b9"&gt;=&lt;/span&gt;&lt;span style="color:#555555"&gt;"&lt;/span&gt;&lt;span style="color:#6464b9"&gt;TSFR001&lt;/span&gt;&lt;span style="color:#555555"&gt;"&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                       &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;timestamp&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;2011-03-14 11:24:47.077&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;timestamp&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                       &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;items&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                           &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;item&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;itemguid&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;6A639774-5EA9-440C-978B-FDC7DBF71949&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;itemguid&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;quantity&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;1&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;quantity&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;fromsite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;001&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;fromsite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;tosite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;002&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;tosite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                           &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;item&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                           &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;item&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;itemguid&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;D8FD406F-8CF2-47E6-B09D-E44106153C11&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;itemguid&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;quantity&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;1&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;quantity&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;fromsite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;001&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;fromsite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;tosite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;002&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;tosite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                           &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;item&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                       &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;items&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                   &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;transfer&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                   &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;transfer&lt;/span&gt; &lt;span style="color:#b96464"&gt;transferNumber&lt;/span&gt;&lt;span style="color:#6464b9"&gt;=&lt;/span&gt;&lt;span style="color:#555555"&gt;"&lt;/span&gt;&lt;span style="color:#6464b9"&gt;TSFR002&lt;/span&gt;&lt;span style="color:#555555"&gt;"&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                       &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;timestamp&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;2011-03-14 11:24:47.077&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;timestamp&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                       &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;items&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                           &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;item&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;itemguid&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;6A639774-5EA9-440C-978B-FDC7DBF71949&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;itemguid&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;quantity&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;2&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;quantity&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;fromsite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;001&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;fromsite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;tosite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;002&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;tosite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                           &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;item&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                           &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;item&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;itemguid&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;D8FD406F-8CF2-47E6-B09D-E44106153C11&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;itemguid&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;quantity&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;2&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;quantity&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;fromsite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;001&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;fromsite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;tosite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;002&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;tosite&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                           &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;item&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                       &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;items&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                   &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;transfer&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;               &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;transfers&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;        &lt;span style="color:#008000"&gt;'read the xElement into an xDocument. This is the easiest and clearest way to code the example&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        xDoc = &lt;span style="color:#2b91af"&gt;XDocument&lt;/span&gt;.Parse(eDoc.ToString)&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#008000"&gt;'create a collection of xElements&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; transferNodes &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IEnumerable&lt;/span&gt;(&lt;span style="color:#0000ff"&gt;Of&lt;/span&gt; &lt;span style="color:#2b91af"&gt;XElement&lt;/span&gt;)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;        &lt;span style="color:#008000"&gt;'LINQ query to read the TRANSFERS into our collection&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        transferNodes = _&lt;/li&gt; &lt;li&gt;            &lt;span style="color:#0000ff"&gt;From&lt;/span&gt; el &lt;span style="color:#0000ff"&gt;In&lt;/span&gt; xDoc&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;transfers&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Elements() _&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            &lt;span style="color:#0000ff"&gt;Select&lt;/span&gt; el&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#008000"&gt;'loop through the collection of TRANSFERS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;For&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Each&lt;/span&gt; el &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;XElement&lt;/span&gt; &lt;span style="color:#0000ff"&gt;In&lt;/span&gt; transferNodes&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            &lt;span style="color:#008000"&gt;'delare a new transfer class&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            oTransfer = &lt;span style="color:#0000ff"&gt;New&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Transfer&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;            &lt;span style="color:#008000"&gt;'initialize the transferDetail Generic.List&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            oTransfer.transferDetail = &lt;span style="color:#0000ff"&gt;New&lt;/span&gt; &lt;span style="color:#2b91af"&gt;List&lt;/span&gt;(&lt;span style="color:#0000ff"&gt;Of&lt;/span&gt; &lt;span style="color:#2b91af"&gt;TransferDetail&lt;/span&gt;)&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            &lt;span style="color:#008000"&gt;'assign some of the transfer class properties. Note how we get the transferNumber attribute here&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            oTransfer.transferNumber = el&lt;span style="color:#6464b9"&gt;.@&lt;/span&gt;transferNumber&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            oTransfer.timestamp = el&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;timestamp&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Value&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            &lt;span style="color:#008000"&gt;'the transfer document has childern - items&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            &lt;span style="color:#008000"&gt;'declare a collection of items&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; itemNodes &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IEnumerable&lt;/span&gt;(&lt;span style="color:#0000ff"&gt;Of&lt;/span&gt; &lt;span style="color:#2b91af"&gt;XElement&lt;/span&gt;)&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            &lt;span style="color:#008000"&gt;'LINQ query to loop through the collection of item elements&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            itemNodes = &lt;span style="color:#0000ff"&gt;From&lt;/span&gt; ie &lt;span style="color:#0000ff"&gt;In&lt;/span&gt; el&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;items&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Elements _&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                           &lt;span style="color:#0000ff"&gt;Select&lt;/span&gt; ie&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            &lt;span style="color:#008000"&gt;'loop through the colleciton of ITEMS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            &lt;span style="color:#0000ff"&gt;For&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Each&lt;/span&gt; ie &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;XElement&lt;/span&gt; &lt;span style="color:#0000ff"&gt;In&lt;/span&gt; itemNodes&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                &lt;span style="color:#008000"&gt;'delcare a new transfer detail class&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                oTransferDetail = &lt;span style="color:#0000ff"&gt;New&lt;/span&gt; &lt;span style="color:#2b91af"&gt;TransferDetail&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;                &lt;span style="color:#008000"&gt;'assign some of the class properties&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                oTransferDetail.itemguid = &lt;span style="color:#0000ff"&gt;New&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Guid&lt;/span&gt;(ie&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;itemguid&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Value)&lt;/li&gt; &lt;li&gt;                oTransferDetail.quantity = ie&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;quantity&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Value&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                oTransferDetail.tosite = ie&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;tosite&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Value&lt;/li&gt; &lt;li&gt;                oTransferDetail.fromsite = ie&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;fromsite&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Value&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;                &lt;span style="color:#008000"&gt;'add the new transferdetail class to the parent transfer class&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                oTransfer.transferDetail.Add(oTransferDetail)&lt;/li&gt; &lt;li&gt;            &lt;span style="color:#0000ff"&gt;Next&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Next&lt;/span&gt;&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Sub&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Class&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;&lt;br /&gt;&lt;a href=http://devshed.us/Blogs/tabid/227/EntryId/1029/Read-an-XML-documents-with-a-Parent-Child-relationship-into-a-class.aspx&gt;More ...&lt;/a&gt;</description>
      <author>steve@4penny.net</author>
      <comments>http://devshed.us/Blogs/tabid/227/EntryId/1029/Read-an-XML-documents-with-a-Parent-Child-relationship-into-a-class.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://devshed.us/Blogs/tabid/227/EntryId/1029/Read-an-XML-documents-with-a-Parent-Child-relationship-into-a-class.aspx</guid>
      <pubDate>Wed, 16 Mar 2011 20:47:47 GMT</pubDate>
      <trackback:ping>http://devshed.usDesktopModules/BlogTrackback.aspx?id=1029</trackback:ping>
    </item>
    <item>
      <title>Linq to XML: Reading an XML doc into a Class</title>
      <link>http://devshed.us/Blogs/tabid/227/EntryId/1022/Linq-to-XML-Reading-an-XML-doc-into-a-Class.aspx</link>
      <description>&lt;p&gt;This code sample will show you how to take an XML document and parse it into VB elements (in this example I use a class)&lt;/p&gt;  &lt;p&gt;First create the class:&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:e31c1f0b-6b5e-4a69-8762-9fb4ae056f2d" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #fff; max-height: 500px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Item&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Property&lt;/span&gt; itemnmbr &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Property&lt;/span&gt; itemguid &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Guid&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Property&lt;/span&gt; active &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Property&lt;/span&gt; description &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Property&lt;/span&gt; category &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Property&lt;/span&gt; commissionamt &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Double&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Property&lt;/span&gt; listprice &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Double&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Property&lt;/span&gt; reorderpt &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Int32&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Class&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;This code will take the XML document shown are read it into the class. You’d want a Generic Collection of this class to get all the items, I’m going for simplicity here as much as possible&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:a74f1ee6-024b-4e81-8f0a-7d404456399c" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #fff; max-height: 500px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; xDoc &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;XDocument&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; xElem &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;XElement&lt;/span&gt;&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;xElem = &lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;items&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;item&lt;/span&gt; &lt;span style="color:#b96464"&gt;guid&lt;/span&gt;&lt;span style="color:#6464b9"&gt;=&lt;/span&gt;&lt;span style="color:#555555"&gt;"&lt;/span&gt;&lt;span style="color:#6464b9"&gt;6A639774-5EA9-440C-978B-FDC7DBF71949&lt;/span&gt;&lt;span style="color:#555555"&gt;"&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;SKUid&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;AAA001&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;SKUid&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;active&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;Y&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;active&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;description&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;SD128 RAM&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;description&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;category&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;Electronics&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;category&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;commissionamt&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;0.00&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;commissionamt&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;listprice&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;9.99&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;listprice&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;reorderpt&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;1&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;reorderpt&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;item&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;item&lt;/span&gt; &lt;span style="color:#b96464"&gt;guid&lt;/span&gt;&lt;span style="color:#6464b9"&gt;=&lt;/span&gt;&lt;span style="color:#555555"&gt;"&lt;/span&gt;&lt;span style="color:#6464b9"&gt;D8FD406F-8CF2-47E6-B09D-E44106153C11&lt;/span&gt;&lt;span style="color:#555555"&gt;"&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;SKUid&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;AAA02&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;SKUid&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;active&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;Y&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;active&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;description&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;SD256 RAM&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;description&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;category&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;Electronics&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;category&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;commissionamt&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;0.00&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;commissionamt&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;listprice&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;19.99&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;listprice&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;&lt;/span&gt;&lt;span style="color:#844646"&gt;reorderpt&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;span style="color:#555555"&gt;5&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;reorderpt&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;item&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#555555"&gt;&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&lt;/&lt;/span&gt;&lt;span style="color:#844646"&gt;items&lt;/span&gt;&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;xDoc = &lt;span style="color:#2b91af"&gt;XDocument&lt;/span&gt;.Parse(xElem.ToString)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; childElements &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IEnumerable&lt;/span&gt;(&lt;span style="color:#0000ff"&gt;Of&lt;/span&gt; &lt;span style="color:#2b91af"&gt;XElement&lt;/span&gt;)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;childElements = _&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;From&lt;/span&gt; el &lt;span style="color:#0000ff"&gt;In&lt;/span&gt; xDoc&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;items&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Elements() _&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Select&lt;/span&gt; el&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;For&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Each&lt;/span&gt; el &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;XElement&lt;/span&gt; &lt;span style="color:#0000ff"&gt;In&lt;/span&gt; childElements&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    oItem = &lt;span style="color:#0000ff"&gt;New&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Item&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    oItem.itemguid = &lt;span style="color:#0000ff"&gt;New&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Guid&lt;/span&gt;(el&lt;span style="color:#6464b9"&gt;.@&lt;/span&gt;guid)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    oItem.itemnmbr = el&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;SKUid&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Value&lt;/li&gt; &lt;li&gt;    oItem.active = el&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;active&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Value&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    oItem.description = el&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;description&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Value&lt;/li&gt; &lt;li&gt;    oItem.category = el&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;category&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Value&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    oItem.commissionamt = el&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;commissionamt&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Value&lt;/li&gt; &lt;li&gt;    oItem.listprice = el&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;listprice&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Value&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    oItem.reorderpt = el&lt;span style="color:#6464b9"&gt;.&lt;&lt;/span&gt;reorderpt&lt;span style="color:#6464b9"&gt;&gt;&lt;/span&gt;.Value&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;Next&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;&lt;br /&gt;&lt;a href=http://devshed.us/Blogs/tabid/227/EntryId/1022/Linq-to-XML-Reading-an-XML-doc-into-a-Class.aspx&gt;More ...&lt;/a&gt;</description>
      <author>steve@4penny.net</author>
      <comments>http://devshed.us/Blogs/tabid/227/EntryId/1022/Linq-to-XML-Reading-an-XML-doc-into-a-Class.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://devshed.us/Blogs/tabid/227/EntryId/1022/Linq-to-XML-Reading-an-XML-doc-into-a-Class.aspx</guid>
      <pubDate>Tue, 15 Mar 2011 20:27:55 GMT</pubDate>
      <trackback:ping>http://devshed.usDesktopModules/BlogTrackback.aspx?id=1022</trackback:ping>
    </item>
    <item>
      <title>LINQ to DataTable &amp;ndash; summarize a table and then iterate through the groups</title>
      <link>http://devshed.us/Blogs/tabid/227/EntryId/958/LINQ-to-DataTable-ndash-summarize-a-table-and-then-iterate-through-the-groups.aspx</link>
      <description>&lt;p&gt;I’m… just not a big fan of LINQ. It’s hard to work with, the syntax is obscure and it’s hard to find documentation for. I’m not sure if it’s something that will be around in the future. &lt;/p&gt;  &lt;p&gt;Anyway, I have this task that reoccurs every so often – given a DataTable, I need to group the table by one (or more) of the fields and do something with the group. Often I need to iterate through the lines in the table that match a group. &lt;/p&gt;  &lt;p&gt;Note that the first query returns one field, so when you reference that field in ‘salesQueryItem’, you only need strTo = salesQueryItem. In the second loop there is more than one field in the select, so they’re itemized.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:53a61aca-37ec-4605-a1ac-32b4e677e13a" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #fff; max-height: 500px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; oDT &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;New&lt;/span&gt; &lt;span style="color:#2b91af"&gt;DataTable&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;&lt;span style="color:#008000"&gt;'create columns&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;oDT.Columns.Add(&lt;span style="color:#0000ff"&gt;New&lt;/span&gt; &lt;span style="color:#2b91af"&gt;DataColumn&lt;/span&gt;(&lt;span style="color:#a31515"&gt;"salesperson"&lt;/span&gt;, System.&lt;span style="color:#2b91af"&gt;Type&lt;/span&gt;.GetType(&lt;span style="color:#a31515"&gt;"System.String"&lt;/span&gt;)))&lt;/li&gt; &lt;li&gt;oDT.Columns.Add(&lt;span style="color:#0000ff"&gt;New&lt;/span&gt; &lt;span style="color:#2b91af"&gt;DataColumn&lt;/span&gt;(&lt;span style="color:#a31515"&gt;"order"&lt;/span&gt;, System.&lt;span style="color:#2b91af"&gt;Type&lt;/span&gt;.GetType(&lt;span style="color:#a31515"&gt;"System.String"&lt;/span&gt;)))&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;oDT.Columns.Add(&lt;span style="color:#0000ff"&gt;New&lt;/span&gt; &lt;span style="color:#2b91af"&gt;DataColumn&lt;/span&gt;(&lt;span style="color:#a31515"&gt;"amount"&lt;/span&gt;, System.&lt;span style="color:#2b91af"&gt;Type&lt;/span&gt;.GetType(&lt;span style="color:#a31515"&gt;"System.Int16"&lt;/span&gt;)))&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#008000"&gt;'create the rows&lt;/span&gt;&lt;/li&gt; &lt;li&gt;oDT.Rows.Add(&lt;span style="color:#a31515"&gt;"Bob@test.com"&lt;/span&gt;, &lt;span style="color:#a31515"&gt;"ORD00100"&lt;/span&gt;, 1.23)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;oDT.Rows.Add(&lt;span style="color:#a31515"&gt;"Bob@test.com"&lt;/span&gt;, &lt;span style="color:#a31515"&gt;"ORD00102"&lt;/span&gt;, 3.23)&lt;/li&gt; &lt;li&gt;oDT.Rows.Add(&lt;span style="color:#a31515"&gt;"Sam@test.com"&lt;/span&gt;, &lt;span style="color:#a31515"&gt;"ORD00104"&lt;/span&gt;, 2.23)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;oDT.Rows.Add(&lt;span style="color:#a31515"&gt;"Sam@test.com"&lt;/span&gt;, &lt;span style="color:#a31515"&gt;"ORD00105"&lt;/span&gt;, 4.23)&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; strBody &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt; = &lt;span style="color:#a31515"&gt;""&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; strTo &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt; = &lt;span style="color:#a31515"&gt;""&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; strSubject &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff"&gt;String&lt;/span&gt; = &lt;span style="color:#a31515"&gt;"Product Hold Email Notification"&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;Try&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; salesQuery = &lt;span style="color:#0000ff"&gt;From&lt;/span&gt; sales &lt;span style="color:#0000ff"&gt;In&lt;/span&gt; oDT _&lt;/li&gt; &lt;li&gt;               &lt;span style="color:#0000ff"&gt;Group&lt;/span&gt; sales &lt;span style="color:#0000ff"&gt;By&lt;/span&gt; salesperson1 = sales(&lt;span style="color:#a31515"&gt;"salesperson"&lt;/span&gt;) &lt;span style="color:#0000ff"&gt;Into&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Group&lt;/span&gt; _&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;               &lt;span style="color:#0000ff"&gt;Select&lt;/span&gt; salesperson1 = salesperson1&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;For&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Each&lt;/span&gt; salesQueryitem &lt;span style="color:#0000ff"&gt;In&lt;/span&gt; salesQuery&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        strTo = salesQueryitem&lt;/li&gt; &lt;li&gt;        strBody = &lt;span style="color:#a31515"&gt;"Orders for "&lt;/span&gt; &amp; strTo &amp; &lt;span style="color:#a31515"&gt;"&lt;br /&gt;"&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;Dim&lt;/span&gt; Query2 = &lt;span style="color:#0000ff"&gt;From&lt;/span&gt; emailNotifications &lt;span style="color:#0000ff"&gt;In&lt;/span&gt; oDT _&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;                      &lt;span style="color:#0000ff"&gt;Where&lt;/span&gt; emailNotifications(&lt;span style="color:#a31515"&gt;"salesperson"&lt;/span&gt;) = strTo _&lt;/li&gt; &lt;li&gt;                      &lt;span style="color:#0000ff"&gt;Select&lt;/span&gt; order1 = emailNotifications(&lt;span style="color:#a31515"&gt;"order"&lt;/span&gt;), amount1 = emailNotifications(&lt;span style="color:#a31515"&gt;"amount"&lt;/span&gt;).ToString&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;For&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Each&lt;/span&gt; Query2item &lt;span style="color:#0000ff"&gt;In&lt;/span&gt; Query2&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            strBody += Query2item.order1 + &lt;span style="color:#a31515"&gt;"&lt;br /&gt;"&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            strBody += &lt;span style="color:#a31515"&gt;"Amount: "&lt;/span&gt; &amp; Query2item.amount1 + &lt;span style="color:#a31515"&gt;"&lt;br /&gt;"&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;Next&lt;/span&gt;&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#008000"&gt;'code to send an email here&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;Next&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;Catch&lt;/span&gt; ex &lt;span style="color:#0000ff"&gt;As&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Exception&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    MsgBox(ex.Message)&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff"&gt;Try&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;&lt;br /&gt;&lt;a href=http://devshed.us/Blogs/tabid/227/EntryId/958/LINQ-to-DataTable-ndash-summarize-a-table-and-then-iterate-through-the-groups.aspx&gt;More ...&lt;/a&gt;</description>
      <author>steve@4penny.net</author>
      <comments>http://devshed.us/Blogs/tabid/227/EntryId/958/LINQ-to-DataTable-ndash-summarize-a-table-and-then-iterate-through-the-groups.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://devshed.us/Blogs/tabid/227/EntryId/958/LINQ-to-DataTable-ndash-summarize-a-table-and-then-iterate-through-the-groups.aspx</guid>
      <pubDate>Mon, 21 Feb 2011 20:24:42 GMT</pubDate>
      <trackback:ping>http://devshed.usDesktopModules/BlogTrackback.aspx?id=958</trackback:ping>
    </item>
    <item>
      <title>Linq: How to read one node in an XML file</title>
      <link>http://devshed.us/Blogs/tabid/227/EntryId/258/Linq-How-to-read-one-node-in-an-XML-file.aspx</link>
      <description>&lt;pre style="font-family: consolas"&gt;I frequently have to read from XML files, the general format of them is something like this:&lt;/pre&gt;

&lt;pre style="font-family: consolas"&gt;&lt;span style="color: blue"&gt;&lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;eConnect&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;xmlns:xsi&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/span&gt;"&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;  &lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;POPReceivingsType&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;    &lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;taUpdateCreateVendorRcd&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;    &lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;taUpdateCreateVendorRcd&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;    &lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;taCreateVendorAddress&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;    &lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;taCreateVendorAddress&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;    &lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;taPopRcptLineInsert_Items&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;      &lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;taPopRcptLineInsert&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;        &lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;PONUMBER&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;PO08/00012&lt;span style="color: blue"&gt;&lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;PONUMBER&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;        &lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;LOCNCODE&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;VA-PIEDMONTB&lt;span style="color: blue"&gt;&lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;LOCNCODE&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;      &lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;taPopRcptLineInsert&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;      &lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;taPopRcptLineInsert&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;        &lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;PONUMBER&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;PO08/00012&lt;span style="color: blue"&gt;&lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;PONUMBER&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;        &lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;LOCNCODE&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;VA-PIEDMONTA&lt;span style="color: blue"&gt;&lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;LOCNCODE&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;      &lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;taPopRcptLineInsert&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;    &lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;taPopRcptLineInsert_Items&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;    &lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;taPopRcptHdrInsert&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;      &lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;POPRCTNM&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;RC08/00028&lt;span style="color: blue"&gt;&lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;POPRCTNM&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;      &lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;POPTYPE&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;1&lt;span style="color: blue"&gt;&lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;POPTYPE&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;    &lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;taPopRcptHdrInsert&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;  &lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;POPReceivingsType&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;&lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;eConnect&lt;/span&gt;&lt;span style="color: blue"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;

&lt;pre style="font-family: consolas"&gt; &lt;/pre&gt;

&lt;pre style="font-family: consolas"&gt;Here’s a simple piece of code that will read the first &lt;taPopRcptLineInsert&gt; node and &lt;/pre&gt;

&lt;pre style="font-family: consolas"&gt;give me the element contained in it. &lt;/pre&gt;

&lt;pre style="font-family: consolas"&gt;In earlier .NET Framework versions I had to set references and include ‘IMPORTS’ &lt;/pre&gt;

&lt;pre style="font-family: consolas"&gt;directives, 4.0 is not requiring that. &lt;/pre&gt;

&lt;pre style="font-family: consolas"&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;Public&lt;/span&gt; &lt;span style="color: blue"&gt;Class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Form2&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;    &lt;span style="color: blue"&gt;Private&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt; Form2_Load(&lt;span style="color: blue"&gt;ByVal&lt;/span&gt; sender &lt;span style="color: blue"&gt;As&lt;/span&gt; System.&lt;span style="color: #2b91af"&gt;Object&lt;/span&gt;, &lt;span style="color: blue"&gt;ByVal&lt;/span&gt; e &lt;span style="color: blue"&gt;As&lt;/span&gt; System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt;) _&lt;/pre&gt;

&lt;pre style="font-family: consolas"&gt;&lt;span style="color: blue"&gt;Handles&lt;/span&gt; &lt;span style="color: blue"&gt;MyBase&lt;/span&gt;.Load&lt;br /&gt;        test()&lt;br /&gt;    &lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;    &lt;span style="color: blue"&gt;Private&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt; test()&lt;br /&gt;        &lt;span style="color: blue"&gt;Dim&lt;/span&gt; strPOnumber &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;String&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;Dim&lt;/span&gt; strLOCNCODE &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;String&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;        &lt;span style="color: blue"&gt;Dim&lt;/span&gt; doc &lt;span style="color: blue"&gt;As&lt;/span&gt; System.Xml.Linq.&lt;span style="color: #2b91af"&gt;XDocument&lt;/span&gt; = _&lt;/pre&gt;

&lt;pre style="font-family: consolas"&gt;&lt;span style="color: #2b91af"&gt;XDocument&lt;/span&gt;.Load(&lt;span style="color: #2b91af"&gt;Application&lt;/span&gt;.StartupPath &amp; &lt;span style="color: #a31515"&gt;"\xmlfile1.xml"&lt;/span&gt;)&lt;br /&gt; &lt;br /&gt;        &lt;span style="color: blue"&gt;Dim&lt;/span&gt; query = _&lt;br /&gt;            &lt;span style="color: blue"&gt;From&lt;/span&gt; c &lt;span style="color: blue"&gt;In&lt;/span&gt; doc&lt;span style="color: #6464b9"&gt;.&lt;&lt;/span&gt;eConnect&lt;span style="color: #6464b9"&gt;&gt;.&lt;&lt;/span&gt;POPReceivingsType&lt;span style="color: #6464b9"&gt;&gt;.&lt;&lt;/span&gt;taPopRcptLineInsert_Items&lt;span style="color: #6464b9"&gt;&gt;&lt;/span&gt; _&lt;br /&gt;            &lt;span style="color: blue"&gt;Select&lt;/span&gt; c.Nodes.First&lt;br /&gt; &lt;br /&gt;        &lt;span style="color: blue"&gt;For&lt;/span&gt; &lt;span style="color: blue"&gt;Each&lt;/span&gt; g &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: #2b91af"&gt;XElement&lt;/span&gt; &lt;span style="color: blue"&gt;In&lt;/span&gt; query&lt;br /&gt;            strPOnumber = g&lt;span style="color: #6464b9"&gt;.&lt;&lt;/span&gt;PONUMBER&lt;span style="color: #6464b9"&gt;&gt;&lt;/span&gt;(0).Value&lt;br /&gt;            strLOCNCODE = g&lt;span style="color: #6464b9"&gt;.&lt;&lt;/span&gt;LOCNCODE&lt;span style="color: #6464b9"&gt;&gt;&lt;/span&gt;(0).Value&lt;br /&gt;        &lt;span style="color: blue"&gt;Next&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;    &lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Class&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href=http://devshed.us/Blogs/tabid/227/EntryId/258/Linq-How-to-read-one-node-in-an-XML-file.aspx&gt;More ...&lt;/a&gt;</description>
      <author>steve@4penny.net</author>
      <comments>http://devshed.us/Blogs/tabid/227/EntryId/258/Linq-How-to-read-one-node-in-an-XML-file.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://devshed.us/Blogs/tabid/227/EntryId/258/Linq-How-to-read-one-node-in-an-XML-file.aspx</guid>
      <pubDate>Thu, 17 Jun 2010 17:02:17 GMT</pubDate>
      <trackback:ping>http://devshed.usDesktopModules/BlogTrackback.aspx?id=258</trackback:ping>
    </item>
    <item>
      <title>LINQ: How to read one record from an XML file</title>
      <link>http://devshed.us/Blogs/tabid/227/EntryId/222/LINQ-How-to-read-one-record-from-an-XML-file.aspx</link>
      <description>&lt;p&gt;Recently I had a project where I needed to have a small configuration file/table that a user could maintain, possibly add records to if needed. The overhead to put that in SQL was a little too much – I’d need to write forms for the maintenance, handle security… it would take a bit to do all that. &lt;/p&gt;  &lt;p&gt;Instead, it seemed easier to write an XML file to handle the task and to allow the user FTP access to the web site. So, given an XML file, how do I get access to all the fields in one ‘record’? LinqToXML to the rescue. &lt;/p&gt;  &lt;p&gt;First, create a class to represent the record&lt;/p&gt;  &lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Class&lt;/span&gt; eCard
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; cardID &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; Int16
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; image &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; imageThumb &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; subject &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; label &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Class&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Then, here is code to read the XML file and populate the class. This is a ASP DataList ItemCommand method, the DataList as the ‘cardID’ in the CommandArgument. &lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Imports&lt;/span&gt; System.Data
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Imports&lt;/span&gt; System.Xml.Linq
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Imports&lt;/span&gt; System.Linq
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Imports&lt;/span&gt; System.Xml
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; lstCards_ItemCommand(&lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; source &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Object&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; e &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; System.Web.UI.WebControls.DataListCommandEventArgs) &lt;span style="color: #0000ff"&gt;Handles&lt;/span&gt; lstCards.ItemCommand
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; doc = XDocument.Load(Server.MapPath("&lt;span style="color: #8b0000"&gt;/eCards/eCard.xml&lt;/span&gt;"))
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; cardID &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; Int16 = e.CommandArgument
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; query = _
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            From c &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; doc.&lt;cards&gt;.&lt;card&gt; _
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            Where c.&lt;cardID&gt;.Value = cardID _
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; c
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; eCard &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; eCard
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;For&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Each&lt;/span&gt; g &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; query
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            eCard.cardID = cardID
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            eCard.image = g.&lt;image&gt;(0).Value
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            eCard.imageThumb = g.&lt;imageThumb&gt;(0).Value
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            eCard.subject = g.&lt;subject&gt;(0).Value
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            eCard.label = g.&lt;label&gt;(0).Value
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;Next&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        Session("&lt;span style="color: #8b0000"&gt;eCard&lt;/span&gt;") = eCard
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        Response.Redirect("&lt;span style="color: #8b0000"&gt;eCards2.aspx&lt;/span&gt;")
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href=http://devshed.us/Blogs/tabid/227/EntryId/222/LINQ-How-to-read-one-record-from-an-XML-file.aspx&gt;More ...&lt;/a&gt;</description>
      <author>steve@4penny.net</author>
      <comments>http://devshed.us/Blogs/tabid/227/EntryId/222/LINQ-How-to-read-one-record-from-an-XML-file.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://devshed.us/Blogs/tabid/227/EntryId/222/LINQ-How-to-read-one-record-from-an-XML-file.aspx</guid>
      <pubDate>Thu, 03 Jun 2010 11:46:30 GMT</pubDate>
      <trackback:ping>http://devshed.usDesktopModules/BlogTrackback.aspx?id=222</trackback:ping>
    </item>
    <item>
      <title>Sum a data table using LINQ</title>
      <link>http://devshed.us/Blogs/tabid/227/EntryId/52/Sum-a-data-table-using-LINQ.aspx</link>
      <description>&lt;p&gt;In a recent project, I needed to sum data in a web page grid and process it on postback. &lt;/p&gt;  &lt;p&gt;I could get it into at datatable easily enough, but getting it grouped and summed was stumping me. &lt;/p&gt;  &lt;p&gt;Our columns are ITEMNMBR, QUANTITY, LOTNUMBER, DEX_ROW_ID. We’ll group on ITEMNMBR and DEX_ROW_ID. We’ll sum on QUANTITY&lt;/p&gt;  &lt;p&gt;So, the data might be:    &lt;br /&gt;ITEM1, 5, LOT A, 1001    &lt;br /&gt;ITEM1, 6, LOT B, 1001    &lt;br /&gt;ITEM2, 1, &lt;NULL&gt;, 1002    &lt;br /&gt;ITEM3, 2, &lt;NULL&gt;,1003&lt;/p&gt;  &lt;p&gt;Lines 1 and 2 above have the same item number and row id, but 2 different lot numbers.&lt;/p&gt; The final result needs to be:   &lt;br /&gt;ITEM1, 11   &lt;br /&gt;ITEM2, 1   &lt;br /&gt;ITEM3 2  &lt;p&gt;The ‘groupRow’ item in the code below holds a set of rows of the underlying group. In the second section of code we loop through that object. Note that there are two quantity results, the group quantity (11) and the line quantity (5,6)&lt;/p&gt;  &lt;p&gt;Here’s the solution. It uses LINQ, so add a reference to SYSTEM.LINQ at the top of the page. Note the use of a system function to do the summing; it’s declared in the second line&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; oDT &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; DataTable = gridToDataTable(&lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.Grid1)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; aggregateSum &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; System.Func(Of DataRow, &lt;span style="color: #0000ff"&gt;Integer&lt;/span&gt;) = &lt;span style="color: #0000ff"&gt;AddressOf&lt;/span&gt; GetSum&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; data = From c &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; oDT.AsEnumerable() _&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;           Group c By itemGroup = c.Field(Of &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;)(&lt;span style="color: #006080"&gt;"itemnmbr"&lt;/span&gt;), _&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                dexGroup = c.Field(Of Int32)(&lt;span style="color: #006080"&gt;"dex_row_id"&lt;/span&gt;) Into Group _&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;           &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; groupRow = Group, _&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                itemGroup = itemGroup, _&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                quantity = Group.Sum(aggregateSum), _&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                dexGroup = dexGroup&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;For&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Each&lt;/span&gt; g &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; data&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    strItemnmbr = g.itemGroup&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    dblItemSellingQtyReceived = g.quantity&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    intDex_row_id = g.dexGroup&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;For&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Each&lt;/span&gt; n &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; g.groupRow&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        strSerltnum = n(&lt;span style="color: #006080"&gt;"serltnum"&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        dblLotSellingQtyReceived = n(&lt;span style="color: #006080"&gt;"quantity"&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;Next&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;Next&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The function:&lt;/p&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt; GetSum(&lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; datarow &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; DataRow) &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Integer&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;Return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Integer&lt;/span&gt;.Parse(datarow(&lt;span style="color: #006080"&gt;"quantity"&lt;/span&gt;).ToString())&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;&lt;br /&gt;&lt;a href=http://devshed.us/Blogs/tabid/227/EntryId/52/Sum-a-data-table-using-LINQ.aspx&gt;More ...&lt;/a&gt;</description>
      <author>steve@4penny.net</author>
      <comments>http://devshed.us/Blogs/tabid/227/EntryId/52/Sum-a-data-table-using-LINQ.aspx#Comments</comments>
      <slash:comments>1</slash:comments>
      <guid isPermaLink="true">http://devshed.us/Blogs/tabid/227/EntryId/52/Sum-a-data-table-using-LINQ.aspx</guid>
      <pubDate>Mon, 24 Aug 2009 14:16:10 GMT</pubDate>
      <trackback:ping>http://devshed.usDesktopModules/BlogTrackback.aspx?id=52</trackback:ping>
    </item>
  </channel>
</rss>
