<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2669703299703988339</id><updated>2011-11-27T16:11:46.581-08:00</updated><category term='XML nd ADO.Net'/><category term='Ado.Net'/><category term='DataTable'/><category term='SqlCommand Class'/><category term='Introduction to ADO.NET'/><category term='DataSet'/><category term='Data Providers'/><category term='Bank Example in ADO.NET'/><title type='text'>ADO.Net Tutorial - how to use Ado.net</title><subtitle type='html'>ActiveX Data Object Ado dot net Tutorial</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://adotutorial.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://adotutorial.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Siebel Expert</name><uri>http://www.blogger.com/profile/11533458660230230361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2669703299703988339.post-1089153148029518137</id><published>2008-11-12T01:09:00.000-08:00</published><updated>2008-12-22T21:14:38.167-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ado.Net'/><title type='text'>Introduction – ADO.NET</title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///D:%5CUSERPR%7E1%5Csshende%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="City"&gt;&lt;/o:smarttagtype&gt;&lt;o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="place"&gt;&lt;/o:smarttagtype&gt;&lt;link rel="themeData" href="file:///D:%5CUSERPR%7E1%5Csshende%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///D:%5CUSERPR%7E1%5Csshende%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;JA&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="0" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="0" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="0" name="Hyperlink"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="0" name="Normal (Web)"&gt;   &lt;w:lsdexception locked="false" priority="0" name="HTML Typewriter"&gt;   &lt;w:lsdexception locked="false" priority="0" name="No List"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if !mso]&gt;&lt;object classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id="ieooui"&gt;&lt;/object&gt; &lt;style&gt; st1\:*{behavior:url(#ieooui) } &lt;/style&gt; &lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Verdana; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:536871559 0 0 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman","serif"; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-language:EN-US;} h2 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-link:"Heading 2 Char"; 	mso-margin-top-alt:auto; 	margin-right:0in; 	mso-margin-bottom-alt:auto; 	margin-left:0in; 	mso-pagination:widow-orphan; 	mso-outline-level:2; 	font-size:13.0pt; 	font-family:"Verdana","sans-serif"; 	color:#FF9900; 	mso-fareast-language:EN-US;} span.Heading2Char 	{mso-style-name:"Heading 2 Char"; 	mso-style-unhide:no; 	mso-style-locked:yes; 	mso-style-link:"Heading 2"; 	mso-ansi-font-size:13.0pt; 	mso-bidi-font-size:13.0pt; 	font-family:"Verdana","sans-serif"; 	mso-ascii-font-family:Verdana; 	mso-hansi-font-family:Verdana; 	color:#FF9900; 	mso-fareast-language:EN-US; 	font-weight:bold;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:150299179; 	mso-list-type:hybrid; 	mso-list-template-ids:-1929092242 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l0:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Symbol;} @list l1 	{mso-list-id:196236675; 	mso-list-type:hybrid; 	mso-list-template-ids:-1301273482 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l1:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Symbol;} @list l2 	{mso-list-id:212154402; 	mso-list-type:hybrid; 	mso-list-template-ids:-688197144 67698689 67698689 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l2:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Symbol;} @list l2:level2 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	margin-left:.5in; 	text-indent:-.25in; 	font-family:Symbol;} @list l3 	{mso-list-id:342245433; 	mso-list-type:hybrid; 	mso-list-template-ids:265590490 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l3:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Symbol;} @list l4 	{mso-list-id:864365806; 	mso-list-type:hybrid; 	mso-list-template-ids:-1336276086 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l4:level1 	{mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in;} @list l5 	{mso-list-id:1422603537; 	mso-list-type:hybrid; 	mso-list-template-ids:935488840 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l5:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Symbol;} @list l6 	{mso-list-id:1633169490; 	mso-list-type:hybrid; 	mso-list-template-ids:-779565198 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l6:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Symbol;} @list l7 	{mso-list-id:1744833053; 	mso-list-type:hybrid; 	mso-list-template-ids:1279302760 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l7:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Symbol;} @list l8 	{mso-list-id:1792482153; 	mso-list-type:hybrid; 	mso-list-template-ids:-1832121340 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l8:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Symbol;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman","serif";} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;ADO.NET is a model intended primarily for disconnected data access. ADO.NET provides two strategies for you to work with this model.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;span style=""&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Store data in a dataset, which is an in-memory cache of records you can work with while disconnected from the data source. To use a dataset, you use a data adapter to fill it from the data source. You then work with the data in the dataset.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;span style=""&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Perform operations directly against the database. In this strategy, you use a data command object. You can then open a connection, execute the command to perform the operation, and then close the connection. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Each strategy has its own advantages. So you should choose a strategy based on what your data-access requirements are.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Advantages of Storing Data in Datasets&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The advantages of the dataset model are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Data exchange with other applications - A dataset provides a powerful way to exchange with other components of your application and with other applications. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Moving data between tiers in a distributed application - By keeping data in a dataset, you can easily move it between the presentation tier, business tier, and data tier of your applications. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Working with multiple tables - A dataset can contain multiple tables. You can work with the tables individually or navigate between them as parent-child tables. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Maintaining records for reuse - A dataset allows you to work with the same records repeatedly without re-querying the database. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Manipulating data from multiple sources - The tables in a dataset can represent data from many different sources. Once the data is in the dataset, you can manipulate it and relate it as if it had come from a single source. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Data binding - If you are working with forms, it is usually easier to bind controls to data in a dataset than it is to programmatically load data values into the control after executing a command. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Ease of programming - When you work with a dataset, you can generate a class file that represents its structure as objects. This makes it easier, clearer, and less error-prone to program with, and is supported by Visual Studio tools such as IntelliSense, the Data Adapter Configuration wizard, and so on.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Advantage of performing Database Operations Directly&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The advantages of performing database operations directly:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;More control over execution - By using commands, you get more direct control over how and when an SQL statement or stored procedure is executed and what becomes of the results or return values. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Less overhead - By reading and writing directly in the database, you can bypass storing data in a dataset. Because the dataset requires memory, you can reduce some overhead in your application. This is especially true in situations where you intend to use the data only once. In that case, creating and filling a dataset might be an unnecessary step in displaying the data. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Extra functionality - There are some operations, such as executing DDL commands, that you can run only by executing data commands. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Less programming in some instances - In a few instances, particularly Web applications, there is some extra programming required to save the state of a dataset. If you use a data reader to read directly from the database, you avoid the extra steps required to manage the dataset.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Recommendations for Accessing Data&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The following sections provide recommendations for which data-access strategy to use with specific types of applications.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Web Forms&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Use data commands in general; use a data reader to fetch data. Because Web Forms pages and their controls and components are recreated each time the page makes a round trip, it often is not efficient to create and fill a dataset each time, unless you also intend to cache it between round trips.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Use datasets under the following circumstances:&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;You need to perform extensive processing with each record you get from the database. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;You want to work with multiple separate tables or tables from different data sources. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;If your data processing involves interdependent records. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;If you want to perform XML operations such as XSLT transformations on the data. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;You are exchanging data with another application or a component such as an XML Web service. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;If you prefer the ease of programming provided by datasets. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;XML Web Services&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;XML Web services are ASP.NET Web applications, and therefore use the same model as Web Forms pages: the XML Web service is created and discarded each time a call is made to it. This suggests that the data-access model for an XML Web service is largely the same as it is for Web Forms. However, XML Web services are often middle-tier objects, and an important part of their purpose is often to exchange data with other applications across the Web.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Use a dataset if:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Your XML Web service sends and receives data. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;For any of the reasons listed above for Web Forms. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Use a data command if:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The XML Web service is performing a non-query operation, such as a DDL command. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The XML Web service is retrieving a scalar value. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The XML Web service is calling a stored procedure to execute logic within the database. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Windows Forms&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;In general, in a Windows Form, use a dataset. Windows Forms are typically used on rich clients where the form is not created and discarded with each user operation, as with Web Forms. Windows Forms applications also traditionally offer data-access scenarios that benefit from maintaining a cache of records, such as displaying records one by one in the form.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Use a dataset if:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;You are using the Windows Forms data-binding architecture, which is specifically designed to work with datasets. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;You are working with the same records repeatedly, such as allowing a user to navigate between records. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;For any of the other reasons listed under Web Forms above. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Use a data command if:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;You are performing a non-query operation, such as a DDL command. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;You are getting a scalar value from the database &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol; color: black;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;You are getting read-only data to display in a form — for example, creating a report. Stated differently, if there is no need to keep the data available after accessing it, use a data command. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;What is ADO.net &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;ADO.net is data access architecture for the Microsoft .NET Framework.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Difference between &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;ADO&lt;/st1:place&gt;&lt;/st1:city&gt; and ADO.net &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;ADO&lt;/span&gt;&lt;/st1:place&gt;&lt;/st1:city&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; used connected data usage, while ADO.net used disconnected data environment. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;ADO&lt;/span&gt;&lt;/st1:place&gt;&lt;/st1:city&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; used OLE DB to access data and is COM-based, while ADO.net uses XML as the format for transmitting data to and from your database and web application. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In ADO, Record set, is like a single table or query result, while in ADO.net Dataset, can contain multiple tables from any data source. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;ADO&lt;/st1:place&gt;&lt;/st1:city&gt;, it is sometime problematic because firewall prohibits many types of request, while in ADO.net there is no such problem because XML is completely firewall-proof&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Difference between ADO.net Dataset and &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;ADO&lt;/st1:place&gt;&lt;/st1:city&gt; Recordset &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;A DataSet can represent an entire relational database in memory, complete with tables, relations, and views.&lt;br /&gt;A DataSet is designed to work without any continuing connection to the original data source.&lt;br /&gt;Data in a DataSet is bulk-loaded, rather than being loaded on demand.&lt;br /&gt;There's no concept of cursor types in a DataSet.&lt;br /&gt;DataSets have no current record pointer You can use For Each loops to move through the data.&lt;br /&gt;You can store many edits in a DataSet, and write them to the original data source in a single operation.&lt;br /&gt;Though the DataSet is universal, other objects in ADO.NET come in different versions for different data sources. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;ADO.net Terms&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Data Source&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;:    It can be a database, text file, excel spread sheet or an XML file. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Data Provider&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;:  A set of libraries that is used to communicate with data source.  Eg:  SQL data provider for SQL, Oracle data provider for Oracle, OLE DB data provider for access, excel or mysql. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SQL Connection&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;:  It establishes connection. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SQL Command&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;:  It allows to manipulate database by executing stored procedure or sql statements. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SQL DataReader&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;:  It provides a forward-only, read-only, connected recordset. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;DataSet&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;:  dataset is a disconnected, in-memory representation of data.  It can contain multiple data table from different database. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SQL DataAdapter&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;:  It populates dataset from data source.  It contains a reference to the connection object and opens and closes the connection automatically when reading from or writing to the database. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;DataView&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;:  It provides a means to filter and sort data within a data table.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Difference between Dataset and DataReader Object &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Points to be consider while choosing between the DataSet and DataReader objects. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="margin-left: -0.05in; border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style="height: 14.35pt;"&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 3.2in; height: 14.35pt;" width="307"&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;DataSet object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 225.1pt; height: 14.35pt;" width="300"&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;DataReader object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 11.95pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 3.2in; height: 11.95pt;" width="307"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Read/Write   access&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 225.1pt; height: 11.95pt;" width="300"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Read-only   access&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 23.9pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 3.2in; height: 23.9pt;" width="307"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Supports   multiple tables from different databases&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 225.1pt; height: 23.9pt;" width="300"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Supports   a single table based on a single SQL query of one database&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 11.95pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 3.2in; height: 11.95pt;" width="307"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Disconnected   mode&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 225.1pt; height: 11.95pt;" width="300"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Connected   mode&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 11.95pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 3.2in; height: 11.95pt;" width="307"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Bind   to multiple controls&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 225.1pt; height: 11.95pt;" width="300"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Bind   to a single control&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 11.95pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 3.2in; height: 11.95pt;" width="307"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Forward   and backward scanning of data&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 225.1pt; height: 11.95pt;" width="300"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Forward-only   scanning of data&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 11.95pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 3.2in; height: 11.95pt;" width="307"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Slower   access to data&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 225.1pt; height: 11.95pt;" width="300"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Faster   access to data&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 11.95pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 3.2in; height: 11.95pt;" width="307"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Greater   overhead to enable additional features&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 225.1pt; height: 11.95pt;" width="300"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Lightweight   object with very little overhead&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 3.2in; height: 12.75pt;" width="307"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Supported   by Visual Studio .NET tools&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 225.1pt; height: 12.75pt;" width="300"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Must   be manually coded&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SQLDataReader makes exclusive use of connection &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The SQLDataReader object makes exclusive use of its SQLConnection object as long as it is open.  You are not able to execute any other SqlCommand objects on that connection as long as the SQLDataReader object is open.  Therefore, you should always call SQLDataReader.close() as soon as you are done retrieving data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; Strongly Typed Dataset Object &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Strongly typed Dataset object allows you to create early-bound data retrieval expression.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Advantage of Strongly Typed dataset&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;It is faster than late-bound data retrieval expression.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Its column name is shown in intellisense as you type code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Improving Performance with Connection Pooling&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Opening a connection is a database-intensive task. It can be one of the slowest operations that you perform in an ASP.NET page. Furthermore, a database has a limited supply of connections, and each connection requires a certain amount of memory overhead (approximately 40 kilobytes per connection).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;If you plan to have hundreds of users hitting your Web site simultaneously, the process of opening a database connection for each user can have a severe impact on the performance of your Web site.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Fortunately, you can safely ignore these bad warnings if you take advantage of connection pooling. When database connections are pooled, a set of connections is kept open so that they can be shared among multiple users. When you request a new connection, an active connection is removed from the pool. When you close the connection, the connection is placed back in the pool.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Connection pooling is enabled for both &lt;/span&gt;&lt;/u&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;OleDb&lt;/span&gt;&lt;/u&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; and &lt;/span&gt;&lt;/u&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SqlClient&lt;/span&gt;&lt;/u&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; connections by default.To take advantage of connection pooling, you must be careful to do two things in your ASP.NET pages. First, you must be careful to use the same exact connection string whenever you open a database connection. Only those connections opened with the same connection string can be placed in the same connection pool.  For this reason you should place your connection string in the &lt;/span&gt;&lt;/u&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;web.config&lt;/span&gt;&lt;/u&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; file and retrieve it from this file whenever you need to open a connection&lt;/span&gt;&lt;/u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;To take advantage of connection pooling in your ASP.NET pages, you also must be careful to explicitly close whatever connection you open as quickly as possible. If you do not explicitly close a connection with the &lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Close()&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; method, the connection is never added back to the connection pool.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SQL Injection Problem &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SQL injection is a strategy for attacking databases.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Example1:&lt;br /&gt;&lt;/span&gt;&lt;/u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;An ASP page asks the user for a name and a password, and then sends the following string to the database:&lt;br /&gt;SELECT FROM users WHERE username = 'whatever' AND password = 'mypassword'&lt;br /&gt;&lt;br /&gt;It seems safe, but it isn't. A user might enter something like this as her user name:&lt;br /&gt;' OR 1&gt;0 --&lt;br /&gt;&lt;br /&gt;When this is plugged into the SQL statement, the result looks like this:&lt;br /&gt;SELECT FROM users WHERE username = '' OR 1&gt;0 -- AND password = ''&lt;br /&gt;&lt;br /&gt;This injection comments out the password portion of the statement. It results in a list of all the names in the users table, so any user could get into your system.&lt;br /&gt;&lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The easiest way to prevent this sort of injection is to parse the SQL string and remove any occurrences of "--" before passing the statement. &lt;/span&gt;&lt;/u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Example 2:&lt;/span&gt;&lt;/u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;br /&gt;You also have to beware of injections that contain semicolons because semicolons delimit SQL statements. Think about the implications of a user name like this:&lt;br /&gt;' OR 1&gt;0 ; DELETE Customers ; -- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;                &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;br /&gt;There are numerous ways a malicious user might penetrate your system using SQL injection and various defenses, but &lt;u&gt;the simplest approach is to avoid dynamic SQL. Instead, use stored procedures everywhere&lt;/u&gt;. Thanks to the way SQL passes parameters, injections such as those above will produce errors, and the stored procedure will not execute.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2669703299703988339-1089153148029518137?l=adotutorial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adotutorial.blogspot.com/feeds/1089153148029518137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2669703299703988339&amp;postID=1089153148029518137' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/1089153148029518137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/1089153148029518137'/><link rel='alternate' type='text/html' href='http://adotutorial.blogspot.com/2008/11/introduction-adonet.html' title='Introduction – ADO.NET'/><author><name>Siebel Expert</name><uri>http://www.blogger.com/profile/11533458660230230361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2669703299703988339.post-752837851133701211</id><published>2008-11-12T01:07:00.000-08:00</published><updated>2008-12-22T21:14:38.167-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ado.Net'/><title type='text'>Transaction Management in ADO.NET</title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///D:%5CUSERPR%7E1%5Csshende%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///D:%5CUSERPR%7E1%5Csshende%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///D:%5CUSERPR%7E1%5Csshende%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;JA&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="0" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="0" name="Hyperlink"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="0" name="Normal (Web)"&gt;   &lt;w:lsdexception locked="false" priority="0" name="HTML Typewriter"&gt;   &lt;w:lsdexception locked="false" priority="0" name="No List"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Verdana; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:536871559 0 0 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman","serif"; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-language:EN-US;} span.brodtext1 	{mso-style-name:brodtext1; 	mso-style-unhide:no; 	mso-ansi-font-size:8.0pt; 	mso-bidi-font-size:8.0pt; 	font-family:"Verdana","sans-serif"; 	mso-ascii-font-family:Verdana; 	mso-hansi-font-family:Verdana; 	color:black; 	font-style:normal;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:1802724048; 	mso-list-type:hybrid; 	mso-list-template-ids:-27778292 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l0:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Symbol;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman","serif";} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;A Database is a software system that defines a collection of predefined operations. Mainly it includes following operations&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Efficient management of large amount of persistent data in a persistent storage (database) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Transaction Management which includes Concurrency Control, Atomicity and backup recovery procedure &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;A DataModel which gives a separate level of abstraction&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In this article I am concentrating of transaction management that is Concurrency Control in .NET environment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;A &lt;b style=""&gt;transaction&lt;/b&gt; is an abstract unit of concurrent computation that execute automatically. The effect of transaction does not interfere with other transactions that access the same data. Also a transaction happens with all of its effects (In this case you will commit the changes) or it doesn't happen none of its effects (In this case you will rollback the changes). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In the transaction control we generally define code in between a block where we perform mission critical operation. If all operations get completed successfully then that part is committed in the database otherwise what ever modification you might have done during the process is roll backed from the database so that it never affect other user's operations.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In .NET environment we can define transaction boundary by Transaction object.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;If you are using SqlClient (namespace System.Data.SqlClient) Managed Provider you can SqlTransaction object. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;If you are using Oledb (namespace System.Data.Oledb) Managed Provider you can OledbTransaction object. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;If you are using Odbc (namespace Microsoft.Data.Odbc) Managed Provider you can OdbcTransaction object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Let us discuss a simple block of transaction control. In this block I am taking SqlClient Managed Provider&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;string connectionString = ".........";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SqlConnection myConnection = new SqlConnection(connectionString);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;myConnection.Open();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;// Start transaction.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SqlTransaction myTransaction = myConnection.BeginTransaction();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;// Assign command in the current transaction.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SqlCommand myCommand = new SqlCommand();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;myCommand.Transaction = myTransaction;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;.........................&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Database operations&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;........................&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;myTransaction.Commit();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Console.WriteLine("Records are modified in the database."); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;catch(Exception e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;myTransaction.Rollback();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Console.WriteLine(e.ToString());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Console.WriteLine("Neither record was written to database.");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;finally&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;myConnection.Close();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;} &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In Above Block&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;BeginTransaction&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; method of the Connection object to mark the start of the transaction, which returns a Transaction object.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The newly created transaction object is assigned to CommandObject so that what ever the database operation is performed by that commandObject can be managed by Transaction Object.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;If anything gets wrong the Transaction object will raise an Exception otherwise it will run through a normal process.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Call the Commit method of the Transaction object to complete the transaction if everything works fine otherwise call the Rollback method to cancel the transaction. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Concurrency Control &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;While doing certain modification in the database some time you need to lock the data so that no one can else perform modification in that data. There are two commonly known approaches for locking database they are optimistic locking and pessimistic locking.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Both these approaches are used to maintain concurrency in the database. Pessimistic concurrency locking is done at rows of the data source to prevent users from modifying data in a way that affects other users. In a pessimistic model, when a user performs an action that causes a lock to be applied, no one else can perform action until unless owner releases that lock. But this is not case with optimistic currency model. In optimistic concurrency model user does not lock row while reading it, while user only locks the row while updating changes to the database.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In .NET we use DataSet object for modifying changes in the database. The DataSet object uses optimistic concurrency model with the help of DataAdaptor. The DataSet object is designed to encourage the use of optimistic concurrency for long-running activities such as when you are working in distributed environment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In real time execution DataSet maintains the versions of data that means if anyone modify any data in the DataSet then it get maintain in the dataset as old version and new version. While updating modified data in the database if any of the concurrency conflict occur it raises Exception, which sets DataRow's HasError Boolean value. This we can easily handle with DataAdaptor event and with our own programming logic. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Here I am giving a simple code sample, which explains you how can you manage, concurrency control in .NET environment&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;string connectionString = ".......................";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SqlConnection myConnection = new SqlConnection(connectionString);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SqlDataAdapter myAdaptor = new SqlDataAdapter("SELECT Name, City FROM Employee ORDER BY EmpID", myConnection);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;// Add the RowUpdated event handler.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;myAdaptor.RowUpdated += new SqlRowUpdatedEventHandler(OnRowUpdated);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;DataSet supplierData = new DataSet();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;myAdaptor.Fill(supplierData, "Supplier");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;// Modify the DataSet contents.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;..........................................&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;.........................................&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;myAdaptor.Update(supplierData, "Supplier");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;foreach (DataRow myRow in supplierData.Tables["Supplier"].Rows)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;if (myRow.HasErrors)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Console.WriteLine(myRow[0] + "\n" + myRow.RowError);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;protected static void OnRowUpdated(object sender, SqlRowUpdatedEventArgs args)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;if (args.RecordsAffected == 0) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;args.Row.RowError = "Optimistic Concurrency Violation Encountered";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;args.Status = UpdateStatus.SkipCurrentRow;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;} &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Explanation of Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In this code you have SqlDataAdaptor, which is retrieving supplier record from a database and filling it in a DataSet supplierData. After that you have performed certain modification in that data via DataSet. After modifying data we have used dataAdaptor to update that changes in the database.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;So what is new in this code? You might have noticed that in this code we have defined a event handler on dataAdaptor's RowUpdated event. This event will be fired when row is updated in the database and in that event handler mechanism we can define different status to argument so that further action can be take place.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In the main code I have specified code to write all those rows in which error has occurred during modification.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;There are different type of status is available for SqlRowUpdatedEventArgs by which you can direct the updating process. Those status are as follows&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Status Description&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Continue - Continue the update operation. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;ErrorsOccurred - Abort the update operation and throw an exception. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SkipCurrentRow - Ignore the current row and continue the update operation. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;SkipAllRemainingRows - Abort the update operation but do not throw an exception.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Transactions&lt;br /&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span class="brodtext1"&gt;&lt;span style="font-size: 9pt;"&gt;So far we haven't used explicit transaction handling and therefore auto-commit has been enabled. This means that all commands have been executed in their own transaction, and that might not be what we want. Fortunately, transaction handling is quite easy and straightforward in ADO.NET using the OdbcTransaction class.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="brodtext1"&gt;&lt;span style=""&gt;A transaction is started by calling the &lt;/span&gt;&lt;/span&gt;&lt;span class="brodtext1"&gt;&lt;i&gt;&lt;span style=""&gt;OdbcConnection.BeginTransaction(isolationlevel)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="brodtext1"&gt;&lt;span style=""&gt; that returns an instance of OdbcTransaction. The different isolation levels are available in &lt;/span&gt;&lt;/span&gt;&lt;span class="brodtext1"&gt;&lt;i&gt;&lt;span style=""&gt;System.Data.IsolationLevel&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="brodtext1"&gt;&lt;span style=""&gt;. For example, &lt;/span&gt;&lt;/span&gt;&lt;span class="brodtext1"&gt;&lt;i&gt;&lt;span style=""&gt;System.Data.IsolationLevel.Serializable&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="brodtext1"&gt;&lt;span style=""&gt; can be used.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="brodtext1"&gt;&lt;span style=""&gt;All SQL statements that we want to be part of the transaction have to be associated with the transaction object. This can be done by passing the transaction through the constructor of the OdbcCommand or by setting the Transaction property. When we are done with the work we simply call &lt;/span&gt;&lt;/span&gt;&lt;span class="brodtext1"&gt;&lt;i&gt;&lt;span style=""&gt;OdbcTransaction.Commit()&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="brodtext1"&gt;&lt;span style=""&gt; or &lt;/span&gt;&lt;/span&gt;&lt;span class="brodtext1"&gt;&lt;i&gt;&lt;span style=""&gt;OdbcTransaction.Rollback()&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="brodtext1"&gt;&lt;span style=""&gt; to commit or roll back the transaction.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;try&lt;br /&gt;{&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;OdbcConnection con = new OdbcConnection("...");&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;con.Open();&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;//Start the transaction&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;OdbcTransaction trans =&lt;br /&gt;&lt;span style=""&gt;        &lt;/span&gt;con.BeginTransaction(System.Data.IsolationLevel.Serializable);&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;OdbcCommand command = new OdbcCommand(sql, con, trans);&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;//An alternative but equivalent approach&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;OdbcCommand command2= new OdbcCommand(sql2, con);&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;command2.Transaction=trans;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;//Execute and commit&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;command.ExecuteNonQuery();&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;command2.ExecuteNonQuery();&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;trans.Commit();&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;con.Close();&lt;br /&gt;}&lt;br /&gt;catch(OdbcException oe)&lt;br /&gt;{&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;//Show errors&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;try&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;{&lt;br /&gt;&lt;span style=""&gt;        &lt;/span&gt;trans.Rollback();&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;catch(OdbcException oe2)&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;{&lt;br /&gt;&lt;span style=""&gt;        &lt;/span&gt;//Show errors&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;br /&gt;&lt;span class="brodtext1"&gt;&lt;span style=""&gt;As you can see, we simply commit when we are done and if an OdbcException is thrown we do a roll back. Note that the &lt;/span&gt;&lt;/span&gt;&lt;span class="brodtext1"&gt;&lt;i&gt;&lt;span style=""&gt;trans.RollBack()&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="brodtext1"&gt;&lt;span style=""&gt; method can throw an OdbcEvent itself and is therefore surrounded by its own try-catch.&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2669703299703988339-752837851133701211?l=adotutorial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adotutorial.blogspot.com/feeds/752837851133701211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2669703299703988339&amp;postID=752837851133701211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/752837851133701211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/752837851133701211'/><link rel='alternate' type='text/html' href='http://adotutorial.blogspot.com/2008/11/transaction-management-in-adonet.html' title='Transaction Management in ADO.NET'/><author><name>Siebel Expert</name><uri>http://www.blogger.com/profile/11533458660230230361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2669703299703988339.post-98227941766930034</id><published>2008-11-12T01:04:00.000-08:00</published><updated>2008-12-22T21:14:38.167-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ado.Net'/><title type='text'>ADO .NET</title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///D:%5CUSERPR%7E1%5Csshende%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="Edit-Time-Data" href="file:///D:%5CUSERPR%7E1%5Csshende%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_editdata.mso"&gt;&lt;!--[if !mso]&gt; &lt;style&gt; v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} &lt;/style&gt; &lt;![endif]--&gt;&lt;link rel="themeData" href="file:///D:%5CUSERPR%7E1%5Csshende%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///D:%5CUSERPR%7E1%5Csshende%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;JA&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="0" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="0" name="Hyperlink"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="0" name="Normal (Web)"&gt;   &lt;w:lsdexception locked="false" priority="0" name="HTML Typewriter"&gt;   &lt;w:lsdexception locked="false" priority="0" name="No List"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:"Arial Unicode MS"; 	panose-1:2 11 6 4 2 2 2 2 2 4; 	mso-font-charset:128; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-134238209 -371195905 63 0 4129279 0;} @font-face 	{font-family:Verdana; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:536871559 0 0 0 415 0;} @font-face 	{font-family:"\@Arial Unicode MS"; 	panose-1:2 11 6 4 2 2 2 2 2 4; 	mso-font-charset:128; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-134238209 -371195905 63 0 4129279 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman","serif"; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-language:EN-US;} p 	{mso-style-noshow:yes; 	mso-style-unhide:no; 	mso-margin-top-alt:auto; 	margin-right:0in; 	mso-margin-bottom-alt:auto; 	margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Arial Unicode MS","sans-serif"; 	mso-fareast-language:EN-US;} span.klink 	{mso-style-name:klink; 	mso-style-unhide:no;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:358775250; 	mso-list-type:hybrid; 	mso-list-template-ids:-2114410750 1669904056 662740972 -1909668600 1614026182 -1381316484 -1011591514 1991438606 1018434464 1675161218;} @list l0:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l1 	{mso-list-id:1309162346; 	mso-list-type:hybrid; 	mso-list-template-ids:437423720 -1657520042 -1627464178 1101843570 -660202642 -936207544 -1346306756 -2057823530 -807075882 1320320842;} @list l1:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l2 	{mso-list-id:1393580819; 	mso-list-type:hybrid; 	mso-list-template-ids:1754557608 -712089134 947137914 -336589622 -347160108 -2005495024 1623497574 610572906 1062470700 -1970874108;} @list l2:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l1:level1 lfo1 	{mso-level-start-at:0; 	mso-level-numbering:continue; 	mso-level-text:o; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:"Courier New"; 	mso-bidi-font-family:"Times New Roman";} @list l2:level1 lfo2 	{mso-level-start-at:0; 	mso-level-numbering:continue; 	mso-level-text:o; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:"Courier New"; 	mso-bidi-font-family:"Times New Roman";} @list l0:level1 lfo3 	{mso-level-start-at:0; 	mso-level-numbering:continue; 	mso-level-text:o; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:"Courier New"; 	mso-bidi-font-family:"Times New Roman";} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman","serif";} &lt;/style&gt; &lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:shapedefaults ext="edit" spidmax="1027"&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:shapelayout ext="edit"&gt;   &lt;o:idmap ext="edit" data="1"&gt;  &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;  &lt;div align="center"&gt;  &lt;table class="MsoNormalTable" style="background: white none repeat scroll 0% 0%; width: 80%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" border="0" cellpadding="0" cellspacing="10" width="80%"&gt;  &lt;tbody&gt;&lt;tr&gt;   &lt;td style="padding: 7.5pt; width: 60%;" valign="top" width="60%"&gt;   &lt;p style="text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 13.5pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Most applications need data access at one point of time making   it a crucial component when working with applications. Data access is making   the application interact with a database, where all the data is stored.   Different applications have different requirements for database access. VB   .NET uses &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;ADO .NET&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; (Active X Data Object) as it's data access and manipulation   protocol which also enables us to work with data on the &lt;a href="http://www.startvbdotnet.com/ado/default.aspx" target="_new"&gt;&lt;span class="klink"&gt;&lt;span style="color: rgb(0, 153, 0); text-decoration: none;"&gt;Internet&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;. Let's take a look why ADO .NET came into   picture replacing ADO. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;strong&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Evolution of ADO.NET&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The first data access model, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;DAO&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;   (data access model) was created for local databases with the built-in Jet   engine which had performance and functionality issues. Next came &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;RDO&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; (&lt;a href="http://www.startvbdotnet.com/ado/default.aspx" target="_new"&gt;&lt;span class="klink"&gt;&lt;span style="color: rgb(0, 153, 0); text-decoration: none;"&gt;Remote Data Object&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;) and &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;ADO&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;   (Active Data Object) which were designed for Client Server architectures but   soon ADO took over RDO. ADO was a good architecture but as the language   changes so is the technology. With ADO, all the data is contained in a &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;recordset   &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;object which had problems when implemented on the &lt;a href="http://www.startvbdotnet.com/ado/default.aspx" target="_new"&gt;&lt;span class="klink"&gt;&lt;span style="color: rgb(0, 153, 0); text-decoration: none;"&gt;network&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; and penetrating firewalls. ADO was a &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;connected&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; data   access, which means that when a connection to the database is established the   connection remains open until the application is closed. Leaving the   connection open for the lifetime of the application raises concerns   about database security and network traffic. Also, as databases are   becoming increasingly important and as they are serving more people, a   connected data access model makes us think about its productivity. For   example, an application with connected data access may do well when connected   to two clients, the same may do poorly when connected to 10 and might be   unusable when connected to 100 or more. Also, open database connections use   system resources to a maximum extent making the system performance less   effective. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Why ADO.NET?&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;To cope up with some of the problems mentioned above, &lt;a href="http://www.startvbdotnet.com/ado/default.aspx" target="_new"&gt;&lt;span class="klink"&gt;&lt;span style="color: rgb(0, 153, 0); text-decoration: none;"&gt;ADO&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; .NET came into existence. ADO .NET addresses the   above mentioned problems by maintaining a &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;disconnected&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;   database access model which means, when an application interacts with   the database, the connection is opened to serve the request of the   application and is closed as soon as the request is completed. Likewise, if a   database is Updated, the connection is opened long enough to complete the   Update operation and is closed. By keeping connections open for only a   minimum period of time, ADO .NET conserves system resources and provides   maximum security for databases and also has less impact on system   performance. Also, ADO .NET when interacting with  the database uses   XML and converts all the data into &lt;a href="http://www.startvbdotnet.com/ado/default.aspx" target="_new"&gt;&lt;span class="klink"&gt;&lt;span style="color: rgb(0, 153, 0); text-decoration: none;"&gt;XML format&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; for database related operations   making them more efficient. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;br /&gt;  &lt;strong&gt;&lt;u&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The ADO.NET Data Architecture&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Data Access in ADO.NET relies on two components: &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;DataSet&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;   and &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;Data Provider&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;DataSet &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The dataset is a &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;disconnected&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;in-memory&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;   representation of data. It can be considered as a &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;local   copy&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; of the relevant portions of the database. The DataSet is   persisted in memory and the data in it can be manipulated and updated   independent of the database. When the use of this DataSet is finished,   changes can be made back to the central database for updating. The data in   DataSet can be loaded from any valid data source like Microsoft SQL server   database, an Oracle database or from a &lt;a href="http://www.startvbdotnet.com/ado/default.aspx" target="_new"&gt;&lt;span class="klink"&gt;&lt;span style="color: rgb(0, 153, 0); text-decoration: none;"&gt;Microsoft Access database&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Data Provider&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The Data Provider is responsible for &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;providing&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; and &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;maintaining&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; the   connection to the database. A DataProvider is a set of related components   that work together to provide data in an efficient and performance driven   manner. The .NET Framework currently comes with two DataProviders: the &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;SQL Data   Provider&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; which is designed only to work with Microsoft's SQL Server 7.0   or later and the &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;OleDb DataProvider&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; which allows us to connect   to other types of databases like Access and &lt;a href="http://www.startvbdotnet.com/ado/default.aspx" target="_new"&gt;&lt;span class="klink"&gt;&lt;span style="color: rgb(0, 153, 0); text-decoration: none;"&gt;Oracle&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;. Each DataProvider consists of the following   component classes: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;Connection &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;object which provides a connection to the database&lt;br /&gt;  The &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;Command &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;object which is used to execute a command&lt;br /&gt;  The &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;DataReader&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; object which provides a forward-only, read only, connected   recordset&lt;br /&gt;  The &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;DataAdapter&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; object which populates a disconnected DataSet with data and   performs update &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;br /&gt;  &lt;u&gt;Data access with ADO.NET can be summarized as follows:&lt;/u&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;A connection object establishes the connection for the   application with the database. The command object provides direct execution   of the command to the database. If the command returns more than a single   value, the command object returns a DataReader to provide the data.   Alternatively, the DataAdapter can be used to fill the Dataset object. The   database can be updated using the command object or the DataAdapter.&lt;br /&gt; &lt;br /&gt;  &lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;    &lt;v:stroke joinstyle="miter"&gt;    &lt;v:formulas&gt;     &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;     &lt;v:f eqn="sum @0 1 0"&gt;     &lt;v:f eqn="sum 0 0 @1"&gt;     &lt;v:f eqn="prod @2 1 2"&gt;     &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;     &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;     &lt;v:f eqn="sum @0 0 1"&gt;     &lt;v:f eqn="prod @6 1 2"&gt;     &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;     &lt;v:f eqn="sum @8 21600 0"&gt;     &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;     &lt;v:f eqn="sum @10 21600 0"&gt;    &lt;/v:formulas&gt;    &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;    &lt;o:lock ext="edit" aspectratio="t"&gt;   &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" alt="ADO .NET Data Architecture" style="'width:533.25pt;height:429.75pt'"&gt;    &lt;v:imagedata src="file:///D:\USERPR~1\sshende\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.gif" href="http://www.startvbdotnet.com/ado/images/adoarc.gif"&gt;   &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="file:///D:/USERPR%7E1/sshende/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image001.gif" alt="ADO .NET Data Architecture" shapes="_x0000_i1025" border="0" width="711" height="573" /&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;strong&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Component classes that make up the Data Providers&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The Connection Object &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The Connection object creates the connection to the database.   Microsoft Visual Studio .NET provides two types of Connection classes: the &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;SqlConnection&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;   object, which is designed specifically to connect to &lt;a href="http://www.startvbdotnet.com/ado/default.aspx" target="_new"&gt;&lt;span class="klink"&gt;&lt;span style="color: rgb(0, 153, 0); text-decoration: none;"&gt;Microsoft SQL Server&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; 7.0 or later, and the &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;OleDbConnection&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;   object, which can provide connections to a wide range of database types like   Microsoft Access and Oracle. The Connection object contains all of the   information required to open a connection to the database. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The Command Object &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The Command object is represented by two corresponding classes: &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;SqlCommand&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; and &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;OleDbCommand&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;.   Command objects are used to execute commands to a database across a data   connection. The Command objects can be used to execute stored procedures on   the database, SQL commands, or return complete tables directly. Command   objects provide three methods that are used to execute commands on the &lt;a href="http://www.startvbdotnet.com/ado/default.aspx" target="_new"&gt;&lt;span class="klink"&gt;&lt;span style="color: rgb(0, 153, 0); text-decoration: none;"&gt;database&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;ExecuteNonQuery&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;: Executes commands that have no return   values such as INSERT, UPDATE or DELETE&lt;br /&gt;  &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;ExecuteScalar&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;: Returns a single value from a database   query&lt;br /&gt;  &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;ExecuteReader&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;: Returns a result set by way of a   DataReader object &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;br /&gt;  &lt;strong&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The DataReader Object &lt;/span&gt;&lt;/strong&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The DataReader object provides a &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;forward-only&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;read-only&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;connected   stream&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; recordset from a database. Unlike other components of the Data   Provider, DataReader objects cannot be directly &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;instantiated&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;.   Rather, the DataReader is returned as the result of the Command object's   &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;ExecuteReader&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; method. The SqlCommand.ExecuteReader   method returns a SqlDataReader object, and the OleDbCommand.ExecuteReader   method returns an OleDbDataReader object. The DataReader can provide rows of   data directly to application logic when you do not need to keep the data   cached in memory. Because only one row is in memory at a time, the DataReader   provides the lowest overhead in terms of system performance but requires the   exclusive use of an open Connection object for the lifetime of the   DataReader. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The DataAdapter Object &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;The DataAdapter is the class at the core of ADO .NET's   disconnected data access. It is essentially the &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;middleman&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;   facilitating all communication between the database and a DataSet. The   DataAdapter is used either to fill a DataTable or DataSet with data from the   database with it's &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;Fill&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; method. After the memory-resident data has been manipulated,   the DataAdapter can commit the changes to the database by calling the Update   method. The DataAdapter provides four properties that represent database   commands: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;SelectCommand&lt;br /&gt;  InsertCommand&lt;br /&gt;  DeleteCommand&lt;br /&gt;  UpdateCommand &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;When the Update method is called, changes in the DataSet are   copied back to the database and the appropriate InsertCommand, DeleteCommand,   or UpdateCommand is executed.  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 7.5pt; background: papayawhip none repeat scroll 0% 0%; width: 80%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="80%"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;a href="http://www.startvbdotnet.com/ado/#top"&gt;&lt;/a&gt;&lt;/span&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="_x0000_s1026" type="#_x0000_t75" alt="" href="#top" style="'position:absolute;" allowoverlap="f" button="t"&gt;    &lt;v:imagedata src="file:///D:\USERPR~1\sshende\LOCALS~1\Temp\msohtmlclip1\01\clip_image002.gif" title="top"&gt;    &lt;w:wrap type="square"&gt;   &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;a href="#top"&gt;&lt;img src="file:///D:/USERPR%7E1/sshende/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image002.gif" shapes="_x0000_s1026" align="left" border="0" width="32" height="13" /&gt;&lt;/a&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;a href="http://www.startvbdotnet.com/ado/#top"&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;span style="font-size: 12pt; font-family: &amp;quot;Arial Unicode MS&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;br /&gt; &lt;/span&gt;  &lt;p style="text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 13.5pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;OOP with VB&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;OOP Basics&lt;/span&gt;&lt;/strong&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;a href="http://www.startvbdotnet.com/oop/default.aspx" target="_new"&gt;&lt;span class="klink"&gt;&lt;span style="color: rgb(0, 153, 0); text-decoration: none;"&gt;Visual Basic&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; was Object-Based, Visual Basic .NET is &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;Object-Oriented&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;, which means that it's a true Object-Oriented Programming Language. Visual Basic .NET supports all the key OOP features like&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt; Polymorphism&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;Inheritance&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;Abstraction&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; and &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;Encapsulation.&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; It's worth having a brief overview of OOP before starting OOP with VB. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Why Object Oriented approach?&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;br /&gt;&lt;br /&gt;A major factor in the invention of Object-Oriented approach is to remove some of the flaws encountered with the procedural approach. In OOP, data is treated as a critical element and does not allow it to flow freely. It bounds data closely to the functions that operate on it and protects it from accidental modification from outside functions. OOP allows decomposition of a problem into a number of entities called objects and then builds data and functions around these objects. A major advantage of OOP is code reusability.&lt;br /&gt;&lt;br /&gt;Some important features of Object Oriented programming are as follows:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="circle"&gt;&lt;li class="MsoNormal" style="color: black; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Emphasis on      data rather than procedure&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Programs are      divided into Objects&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Data is hidden      and cannot be accessed by external functions&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Objects can      communicate with each other through functions&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;New data and      functions can be easily added whenever necessary&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Follows      bottom-up approach &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p style="margin: 0in 0in 0.0001pt; text-align: justify;"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Concepts of OOP:&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="circle"&gt;&lt;li class="MsoNormal" style="color: black; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Objects&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Classes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Data      Abstraction and Encapsulation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Inheritance&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Polymorphism &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p style="margin: 0in 0in 0.0001pt; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Briefly on Concepts:&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Objects&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Objects &lt;/i&gt;are the basic run-time entities in an object-oriented system. Programming problem is analyzed in terms of objects and nature of communication between them. When a program is executed, objects interact with each other by sending messages. Different objects can also interact with each other without knowing the details of their data or code.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Classes&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A &lt;i&gt;class&lt;/i&gt; is a collection of objects of similar type. Once a class is defined, any number of objects can be created which belong to that class.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Data Abstraction and Encapsulation&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Abstraction&lt;/i&gt; refers to the act of representing essential features without including the background details or explanations. Classes use the concept of abstraction and are defined as a list of abstract attributes.&lt;br /&gt;&lt;br /&gt;Storing data and functions in a single unit (class) is &lt;i&gt;encapsulation.&lt;/i&gt; Data cannot be accessible to the outside world and only those functions which are stored in the class can access it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Inheritance&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Inheritance&lt;/i&gt; is the process by which objects can acquire the properties of objects of other class. In OOP, &lt;i&gt;inheritance&lt;/i&gt; provides reusability, like, adding additional features to an existing class without modifying it. This is achieved by deriving a new class from the existing one. The new class will have combined features of both the classes.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Polymorphism&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Polymorphism&lt;/i&gt; means the ability to take more than one form. An operation may exhibit different behaviors in different instances. The behavior depends on the data types used in the operation. Polymorphism is extensively used in implementing Inheritance.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Advantages of OOP&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Object-Oriented Programming has the following advantages over conventional approaches:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="circle"&gt;&lt;li class="MsoNormal" style="color: black; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;OOP provides a      clear modular structure for programs which makes it good for defining      abstract datatypes where implementation details are hidden and the unit      has a clearly defined interface. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;OOP makes it      easy to maintain and modify existing code as new objects can be created      with small differences to existing ones. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;OOP provides a      good framework for code libraries where supplied &lt;a href="http://www.startvbdotnet.com/oop/default.aspx" target="_new"&gt;&lt;span class="klink"&gt;&lt;span style="color: rgb(0, 153, 0); text-decoration: none;"&gt;software&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; components can be easily adapted and      modified by the programmer. This is particularly useful for developing      graphical user interfaces. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2669703299703988339-98227941766930034?l=adotutorial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adotutorial.blogspot.com/feeds/98227941766930034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2669703299703988339&amp;postID=98227941766930034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/98227941766930034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/98227941766930034'/><link rel='alternate' type='text/html' href='http://adotutorial.blogspot.com/2008/11/ado-net.html' title='ADO .NET'/><author><name>Siebel Expert</name><uri>http://www.blogger.com/profile/11533458660230230361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2669703299703988339.post-3219828207418595983</id><published>2008-08-28T22:21:00.001-07:00</published><updated>2008-12-22T21:14:38.168-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ado.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='XML nd ADO.Net'/><title type='text'>XML And ADO.NET</title><content type='html'>A powerful feature of ADO.NET is its ability to convert the data stored in a data source in XML and vice versa. In this article we would read records from a data source and display them in a 'DataGrid' control. At the same time we would write the records in an XML file. The contents of the XML file would get displayed in a text box where we can modify it. The modified contents would get added to the data set and would get displayed in the 'DataGrid' control. We are going to use OLEDB for accessing the database.&lt;br /&gt;     &lt;br /&gt;      Let us first understand few basic issues in the ADO.NET technology. The &lt;b&gt; System.Data&lt;/b&gt; namespace is the root namespace of ADO.NET API. The primary namespaces of ADO.NET,       &lt;b&gt; System.Data.OleDb&lt;/b&gt; and &lt;b&gt; System.Data.SqlClient&lt;/b&gt; contain classes that enable programs to connect with and modify the datasources. A datasource can be any file containing records such as a '.mdb' file. The namespace       &lt;b&gt; OleDb&lt;/b&gt; can be used to work with any datasource. On the other hand &lt;b&gt; SqlClient&lt;/b&gt; namespace is used for working with MS SQL Server 2000 datasources.&lt;br /&gt;     &lt;br /&gt;      ADO.NET has two major components-&lt;b&gt;DataSet&lt;/b&gt; and &lt;b&gt; .NET Data       Providers&lt;/b&gt;. A .NET Data Provider is used for connecting to a database, executing commands, and retrieving results.&lt;br /&gt;     &lt;br /&gt;      &lt;b&gt;DataSet&lt;/b&gt; is used to cache the data read from the datasource in local memory. The data stored in the memory can be modified and written back to the datasource. The &lt;b&gt; System.Data.DataSet&lt;/b&gt; class is provided to take care of the &lt;b&gt; DataSets&lt;/b&gt;.&lt;br /&gt;     &lt;br /&gt;Let us move on and write a program using ADO.NET. Create a Windows application and design the form as shown in the following figure.   &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td width="100%"&gt;       &lt;p align="center"&gt;&lt;br /&gt;     &lt;/p&gt;&lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;        &lt;p&gt; The dark gray colored control is the 'DataGrid' control. The controls, their Names and handlers are given in the following table. &lt;/p&gt;       &lt;table width="94%" border="0"&gt;         &lt;tbody&gt;&lt;tr&gt;           &lt;td width="36%"&gt;&lt;br /&gt;&lt;/td&gt;           &lt;td width="44%"&gt;             &lt;div align="center"&gt;               &lt;center&gt;             &lt;center&gt;               &lt;/center&gt;&lt;center&gt;               &lt;/center&gt;&lt;center&gt;               &lt;/center&gt;&lt;center&gt;               &lt;/center&gt;&lt;center&gt;               &lt;/center&gt;&lt;table width="94%" border="1" cellpadding="0" cellspacing="0"&gt;               &lt;tbody&gt;&lt;tr&gt;                 &lt;td class="mybody" width="41%"&gt;&lt;b&gt; Control&lt;/b&gt;&lt;/td&gt;                                &lt;td class="mybody" width="29%" align="left"&gt;                   &lt;p align="left"&gt;&lt;b&gt;  Name&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;                 &lt;td class="mybody" width="30%"&gt;                   &lt;p align="left"&gt;&lt;b&gt;     Handler&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;               &lt;/tr&gt;               &lt;tr&gt;                 &lt;td class="mybody" width="41%" align="left"&gt; DataGrid&lt;/td&gt;                 &lt;td class="mybody" width="29%" align="left"&gt;    dg&lt;/td&gt;                                &lt;td class="mybody" width="30%" align="left"&gt;                   &lt;p align="left"&gt;        -&lt;/p&gt;&lt;/td&gt;               &lt;/tr&gt;               &lt;tr&gt;                 &lt;td class="mybody" width="41%" align="left"&gt; Write Button&lt;/td&gt;                 &lt;td class="mybody" width="29%" align="left"&gt;    wb&lt;/td&gt;                                &lt;td class="mybody" width="30%" align="left"&gt;                   &lt;p align="left"&gt;     Click&lt;/p&gt;&lt;/td&gt;               &lt;/tr&gt;               &lt;tr&gt;                 &lt;td class="mybody" width="41%" align="left"&gt; Clear Button&lt;/td&gt;                 &lt;td class="mybody" width="29%" align="left"&gt; cb&lt;/td&gt;                                &lt;td class="mybody" width="30%" align="left"&gt;                   &lt;p align="left"&gt;     Click&lt;/p&gt;&lt;/td&gt;               &lt;/tr&gt;               &lt;tr&gt;                 &lt;td class="mybody" width="41%" align="left"&gt; Read Button&lt;/td&gt;                 &lt;td class="mybody" width="29%" align="left"&gt; rb&lt;/td&gt;                                &lt;td class="mybody" width="30%" align="left"&gt;                   &lt;p align="left"&gt;     Click&lt;/p&gt;&lt;/td&gt;               &lt;/tr&gt;               &lt;tr&gt;                 &lt;td class="mybody" width="41%" align="left"&gt; TextBox&lt;/td&gt;                 &lt;td class="mybody" width="29%" align="left"&gt; xmltext&lt;/td&gt;                                &lt;td class="mybody" width="30%" align="left"&gt;                   &lt;p align="left"&gt;        -&lt;/p&gt;&lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;             &lt;/center&gt;&lt;/div&gt;           &lt;/td&gt;           &lt;td width="27%"&gt;            &lt;br /&gt;&lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;       &lt;p class="mybody"&gt;      &lt;br /&gt;      First of all we would look at the &lt;b&gt; Click &lt;/b&gt; event handler for the 'Write' button.        &lt;/p&gt;       &lt;p class="myprog"&gt;&lt;span style="color:#0000ff;"&gt;private void wb_Click ( object sender, System.EventArgs e )&lt;br /&gt;      {&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog1in"&gt;&lt;span style="color:#0000ff;"&gt; String constr = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\book.mdb" ;&lt;br /&gt; OleDbConnection con = new OleDbConnection ( constr ) ;&lt;br /&gt; con.Open( ) ;&lt;br /&gt;     &lt;br /&gt; String comstr = "SELECT Name, Email, Phone FROM addressbook" ;&lt;br /&gt; OleDbCommand com = new OleDbCommand ( comstr, con ) ;&lt;br /&gt;     &lt;br /&gt; OleDbDataAdapter adapt = new OleDbDataAdapter ( com ) ;&lt;br /&gt; adapt.Fill ( dset, "addressbook" ) ;&lt;br /&gt;     &lt;br /&gt; dg.SetDataBinding ( dset, "addressbook" ) ;&lt;br /&gt;     &lt;br /&gt; dset.WriteXml ( "addressbook.xml" ) ;&lt;br /&gt; xmltext.Text = dset.GetXml( ) ;&lt;br /&gt;     &lt;br /&gt; con.Close( ) ;&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog"&gt;&lt;span style="color:#0000ff;"&gt;}&lt;/span&gt;       &lt;/p&gt;       &lt;p class="mybody"&gt;Interacting with a database using ADO.NET involves connection and command objects. Since we have used OLEDB to access the database, the connection must be established between the database and OLEDB .NET Provider. The class &lt;b&gt; OleDbConnection&lt;/b&gt; is used for this job. So, in this method we have firstly created an object of this class passing to it the connection string. The connection string contains the name of the OLEDB .NET Provider and that of the datasource. Our datasource is 'book.mdb' that maintains an address book. This file is already created using Microsoft Access. It contains details like names, e-mail IDs and phone numbers. Only creating object of connection class does not physically open a connection to the database. Calling &lt;b&gt;Open( )&lt;/b&gt; method does. So we have called the &lt;b&gt; Open( )&lt;/b&gt; method in the next statement.&lt;br /&gt;     &lt;br /&gt;      The &lt;b&gt; Command&lt;/b&gt; object allows us to execute an SQL statement or a stored procedure in a data source. We have created the command object using the &lt;b&gt; OleDbCommand&lt;/b&gt; class and passing to it the command string. The command string contains the SQL statement to select all the records from the datasource.&lt;br /&gt;     &lt;br /&gt;      The &lt;b&gt; command&lt;/b&gt; object is used to connect the &lt;b&gt; connection&lt;/b&gt; object to a       &lt;b&gt; DataAdapter&lt;/b&gt; object. A &lt;b&gt; DataAdapter&lt;/b&gt; is used to fill data from the database into the       &lt;b&gt; DataSet&lt;/b&gt; object. To read the records into the &lt;b&gt; DataSet&lt;/b&gt; we have used the       &lt;b&gt;OleDbDataAdapter&lt;/b&gt;.Fill( ) method. To this method we have passed the &lt;b&gt; DataSet&lt;/b&gt; object       &lt;b&gt; dset&lt;/b&gt; and the table name. Add the data member &lt;b&gt; dset&lt;/b&gt; of type &lt;b&gt; DataSet&lt;/b&gt; to the form class. Initialize the data set object in the constructor as       &lt;/p&gt;       &lt;p class="myprog"&gt;       &lt;span style="color:#0000ff;"&gt;dset = new DataSet( ) ;&lt;/span&gt;       &lt;/p&gt;       &lt;p class="mybody"&gt;       Next, we have called the &lt;b&gt; DataGrid.SetDataBinding( )&lt;/b&gt; method to bind the grid control with the datasource. We have passed the       &lt;b&gt; DataSet &lt;/b&gt; object as the first parameter to specify whose data the grid control should display. Second parameter is the name of table within the datasource we want to bind to the control. When this function call is executed, the data grid is filled with the records in the &lt;b&gt; DataSet&lt;/b&gt;.&lt;br /&gt;     &lt;br /&gt;      Next comes the main part of the program i.e writing records to an XML file. The       &lt;b&gt; DataSet.WriteXml( )&lt;/b&gt; method generates the XML representation of the data contained in the       &lt;b&gt; DataSet&lt;/b&gt; object and writes it to the specified file. We have displayed the same XML data that we have just written to the file in the text box. For this, we have called the &lt;b&gt; DataSet.GetXml( )&lt;/b&gt; method.&lt;br /&gt;     &lt;br /&gt;      The &lt;b&gt; OleDbConnection.Close( )&lt;/b&gt; method closes the connection with the datasource. A part of the XML file is given below.       &lt;/p&gt;       &lt;p class="myprog"&gt;&lt;span style="color:#0000ff;"&gt;&lt;newdataset&gt;&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog1in"&gt;&lt;span style="color:#0000ff;"&gt;&lt;addressbook&gt;&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog2in"&gt;&lt;span style="color:#0000ff;"&gt;&lt;name&gt;Meghana&lt;/name&gt;&lt;br /&gt;      &lt;email&gt;Meg2003@hotmail.com&lt;/email&gt;&lt;br /&gt;      &lt;phone&gt;2242567&lt;/phone&gt;&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog1in"&gt;&lt;span style="color:#0000ff;"&gt;&lt;/addressbook&gt;&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog"&gt;&lt;span style="color:#0000ff;"&gt;….&lt;br /&gt;      &lt;/newdataset&gt;&lt;/span&gt;       &lt;/p&gt;       &lt;p class="mybody"&gt;On clicking the 'Clear' button the grid control should get cleared so that we can display modified contents in it. The code to clear the control is given in the &lt;b&gt; cb_CLick( )&lt;/b&gt; event handler. The handler is given below.        &lt;/p&gt;       &lt;p class="myprog"&gt;&lt;span style="color:#0000ff;"&gt;private void cb_Click ( object sender, System.EventArgs e )&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog"&gt;&lt;span style="color:#0000ff;"&gt;{&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog1in"&gt;&lt;span style="color:#0000ff;"&gt;dset.Clear( ) ;&lt;br /&gt;     dg.Update( ) ;&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog"&gt;&lt;span style="color:#0000ff;"&gt;}&lt;/span&gt;       &lt;/p&gt;       &lt;p class="mybody"&gt;Since the grid control is attached to the datasource represented by &lt;b&gt; dset&lt;/b&gt;, clearing       &lt;b&gt; dset&lt;/b&gt; and updating the grid control clears the contents from it.       &lt;/p&gt;       &lt;p class="mybody"&gt;Now add the following node to the XML data displayed in the text box.        &lt;/p&gt;       &lt;p class="myprog"&gt;&lt;span style="color:#0000ff;"&gt;&lt;addressbook&gt;&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog1in"&gt;&lt;span style="color:#0000ff;"&gt;&lt;name&gt;Sanjay&lt;/name&gt;&lt;br /&gt;    &lt;email&gt;sanju@hotmail.com&lt;/email&gt;&lt;br /&gt;    &lt;phone&gt;227257&lt;/phone&gt;&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog"&gt;&lt;span style="color:#0000ff;"&gt;&lt;/addressbook&gt;&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog"&gt;        &lt;/p&gt;       &lt;p class="mybody"&gt;Click the 'Read' button. Following handler would get called.       &lt;/p&gt;       &lt;p class="myprog"&gt;&lt;span style="color:#0000ff;"&gt;private void rb_Click ( object sender, System.EventArgs e )&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog"&gt;&lt;span style="color:#0000ff;"&gt;{&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog1in"&gt;&lt;span style="color:#0000ff;"&gt;         StreamWriter sw = new StreamWriter ( "addressbook.xml", false ) ;&lt;br /&gt;         sw.Write ( xmltext.Text ) ;&lt;br /&gt;         sw.Close( ) ;&lt;br /&gt;         dset.ReadXml ( "addressbook.xml" ) ;&lt;br /&gt;         dg.SetDataBinding ( dset, "addressbook" ) ;&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog"&gt;&lt;span style="color:#0000ff;"&gt;}&lt;/span&gt;       &lt;/p&gt;       &lt;p class="myprog"&gt;        &lt;/p&gt;       &lt;p class="mybody"&gt;Here, we have used the &lt;b&gt; StreamWriter&lt;/b&gt; class to write the contents from textbox to the XML file. To read new contents of the file and fill the       &lt;b&gt; DataSet&lt;/b&gt; with it we have used the &lt;b&gt; ReadXml( )&lt;/b&gt; method. Again to fill the grid control we have called the       &lt;b&gt; SetDataBinding( )&lt;/b&gt; method. The result is shown in the following figure.       &lt;/p&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td width="100%"&gt;       &lt;p align="center"&gt;&lt;br /&gt;    &lt;/p&gt;&lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;       &lt;p&gt;       Note that we must add the following declarations at the beginning of the program.       &lt;/p&gt;       &lt;p class="myprog"&gt;       &lt;span style="color:#0000ff;"&gt;using System.Data.OleDb ;&lt;br /&gt;      using System.IO ;&lt;/span&gt;       &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2669703299703988339-3219828207418595983?l=adotutorial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adotutorial.blogspot.com/feeds/3219828207418595983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2669703299703988339&amp;postID=3219828207418595983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/3219828207418595983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/3219828207418595983'/><link rel='alternate' type='text/html' href='http://adotutorial.blogspot.com/2008/08/xml-and-adonet.html' title='XML And ADO.NET'/><author><name>Siebel Expert</name><uri>http://www.blogger.com/profile/11533458660230230361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2669703299703988339.post-3517270556075236888</id><published>2008-08-26T21:22:00.004-07:00</published><updated>2008-12-22T21:14:38.168-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bank Example in ADO.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Ado.Net'/><title type='text'>Bank Example in ADO.NET</title><content type='html'>&lt;p align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;In the following program we have created a WinForm. In this form we plan to show all the contents of a table. Here too we have used the OLE DB .NET Data Provider. We plan to add functionality to add, delete and modify the table.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;using System;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Collections;&lt;br /&gt;using System.ComponentModel;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Data.OleDb ;&lt;br /&gt;namespace AdoProgram1&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-right: 0pt; margin-top: 0pt; margin-bottom: 0pt;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; class bank&lt;br /&gt; {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  OleDbDataAdapter dest ;&lt;br /&gt;  DataSet ds ;&lt;br /&gt;  DataTable dt ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  public bank ( )&lt;br /&gt;  {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;string str =" Data Source = c:\\bank.mdb; Provider = Microsoft.Jet.OLEDB.4.0";&lt;br /&gt;   string cmd = "SELECT accno, name, balance from      account" ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;&lt;br /&gt;   dest= new OleDbDataAdapter( cmd, str ) ;&lt;br /&gt;   OleDbCommandBuilder obd = new OleDbCommandBuilder( dest ) ;&lt;br /&gt;   ds = new DataSet ( ) ;&lt;br /&gt;   dest.Fill ( ds, "account" ) ;&lt;br /&gt;   dt = ds.Tables["account"] ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  public void  addnewrec ( int  id, String  name, int  bal )&lt;br /&gt;  {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;DataRow r = getrowbyid ( id ) ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   if ( r == null )&lt;br /&gt;   {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 80px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;    DataRow nrow = dt.NewRow ( ) ;&lt;br /&gt;    nrow[0] = id ;&lt;br /&gt;    nrow[1] = name ;&lt;br /&gt;    nrow[2] = bal ;&lt;br /&gt;    dt.Rows.Add ( nrow ) ;&lt;br /&gt;    dest.Update ( ds, "account" ) ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   }&lt;br /&gt;else&lt;br /&gt;   {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 80px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;    MessageBox.Show (" Record Already Exists") ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  public void  deleterec ( int  id )&lt;br /&gt;  {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   string exp = " accno = " + id ;&lt;br /&gt;   DataRow[] r  = dt.Select ( exp ) ;&lt;br /&gt;   r[0].Delete ( ) ;&lt;br /&gt;   dest.Update ( ds, "account" ) ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  public void  updaterec ( int  id, String  name, int bal )&lt;br /&gt;  {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;string exp = " accno = " + id ;&lt;br /&gt;   DataRow[] r  = dt.Select ( exp ) ;&lt;br /&gt;   r[0][1] = name ;&lt;br /&gt;   r[0][2] = bal ;&lt;br /&gt;   dest.Update ( ds, "account" ) ; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  public DataRow getrowbyid ( int  id )&lt;br /&gt;  {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   try&lt;br /&gt;   {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 80px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;    string exp = " accno =" + id ;&lt;br /&gt;    DataRow[] r  = dt.Select ( exp ) ;&lt;br /&gt;    return r[0] ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   catch ( Exception e )&lt;br /&gt;   {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 80px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;    return null ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  public DataSet dset&lt;br /&gt;  {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   get&lt;br /&gt;   {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 80px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;    return ds ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-right: 0pt; margin-top: 0pt; margin-bottom: 0pt;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-right: 0pt; margin-top: 0pt; margin-bottom: 0pt;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 20px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; public class Form1 : System.Windows.Forms.Form&lt;br /&gt; {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  private System.Windows.Forms.TextBox name;&lt;br /&gt;  private System.Windows.Forms.TextBox bal;&lt;br /&gt;  private System.Windows.Forms.TextBox acc;&lt;br /&gt;  private System.Windows.Forms.Label label1;&lt;br /&gt;  private System.Windows.Forms.Label label2;&lt;br /&gt;  private System.Windows.Forms.Label label3;&lt;br /&gt;  private System.Windows.Forms.Button searchbut;&lt;br /&gt;  private bank b = new bank ( ) ;&lt;br /&gt;  private int m_oper ;&lt;br /&gt;  private System.Windows.Forms.Button commitbut;&lt;br /&gt;  private System.Windows.Forms.DataGrid dgrid;&lt;br /&gt;  private System.Windows.Forms.GroupBox groupBox2;&lt;br /&gt;  private System.Windows.Forms.GroupBox groupBox1;&lt;br /&gt;  private System.Windows.Forms.Button addbut;&lt;br /&gt;  private System.Windows.Forms.Button updatebut;&lt;br /&gt;  private System.Windows.Forms.Button delbut;&lt;br /&gt;  private System.ComponentModel.Container components = null;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;br /&gt;  public Form1( )&lt;br /&gt;  {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   m_oper = 0 ;&lt;br /&gt;   InitializeComponent( ) ;&lt;br /&gt;   dgrid.SetDataBinding ( b.dset, "account" ) ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  protected override void Dispose( bool disposing )&lt;br /&gt;  {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   if( disposing )&lt;br /&gt;   {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 80px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;    if ( components != null )&lt;br /&gt;    {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 100px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;components.Dispose ( ) ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 80px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;base.Dispose( disposing ) ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt; &lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  #region Windows Form Designer generated code&lt;br /&gt;  private void InitializeComponent ( )&lt;br /&gt;  {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt; &lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;//Wizard generated code found in Zip file&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;#endregion&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;[STAThread]&lt;br /&gt;  static void Main ( )&lt;br /&gt;  {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   Application.Run ( new Form1 ( ) ) ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  private void searchbut_Click ( object sender, System.EventArgs         e)&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   DataRow r = b.getrowbyid ( Int32.Parse ( acc.Text ) ) ;&lt;br /&gt;   if ( r != null )&lt;br /&gt;   {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 80px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;    name.Text = r[1].ToString() ;&lt;br /&gt;    bal.Text = r[2].ToString ( ) ;&lt;br /&gt;    name.Enabled = true ;&lt;br /&gt;    bal.Enabled = true ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   else&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 80px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;    MessageBox.Show ( "Record not found" ) ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  private void addbut_Click ( object sender, System.EventArgs e )&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   acc.Enabled = true ;&lt;br /&gt;   name.Enabled = true ;&lt;br /&gt;   bal.Enabled = true ;&lt;br /&gt;   commitbut.Enabled = true ;&lt;br /&gt;   searchbut.Enabled = false ;&lt;br /&gt;   m_oper = 1 ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;private void updatebut_Click ( object sender, System.EventArgs         e )&lt;br /&gt;  {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   acc.Enabled = true ;&lt;br /&gt;   name.Enabled = false ;&lt;br /&gt;   bal.Enabled = false ;&lt;br /&gt;   commitbut.Enabled = true ;&lt;br /&gt;   searchbut.Enabled = true ;&lt;br /&gt;   m_oper = 2 ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  private void delbut_Click ( object sender, System.EventArgs e )&lt;br /&gt;  {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   acc.Enabled = true ;&lt;br /&gt;   name.Enabled = false ;&lt;br /&gt;   bal.Enabled = false ;&lt;br /&gt;   commitbut.Enabled = true ;&lt;br /&gt;   searchbut.Enabled = true ;&lt;br /&gt;   m_oper = 3 ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  private void commitbut_Click ( object sender,       System.EventArgs e )&lt;br /&gt;  {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   int a = Int32.Parse ( acc.Text ) ;&lt;br /&gt;   string n = name.Text ;&lt;br /&gt;   int balance = Int32.Parse ( bal.Text ) ;&lt;br /&gt;   switch ( m_oper )&lt;br /&gt;   {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 80px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;    case 1:&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 100px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;b.addnewrec ( a, n,  balance ) ;&lt;br /&gt;     break ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 80px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;    case 2:&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 100px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;     b.updaterec ( a, n,  balance ) ;&lt;br /&gt;     break ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 80px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;    case 3:&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 100px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;     b.deleterec ( a ) ;&lt;br /&gt;     break ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   acc.Text = "" ;&lt;br /&gt;   name.Text = "" ;&lt;br /&gt;   bal.Text = "" ;&lt;br /&gt;   commitbut.Enabled = false ;&lt;br /&gt;   searchbut.Enabled = false ;&lt;br /&gt;   acc.Enabled = false ;&lt;br /&gt;   name.Enabled = false ;&lt;br /&gt;   bal.Enabled = false ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 20px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;In this program we have added a control called the Data Grid. We have used the Data Grid control to view the Data. This control is wrapped in a class called the DataGrid class derived from the Control class. We get the following output when we run this program. &lt;/span&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt; &lt;img src="http://www.kicit.com/freebies/csharp_net_source_code/Ado.net/ado5.h1.gif" width="368" border="0" height="352" /&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;To add a new &lt;b&gt;DataRow&lt;/b&gt;, we must press the Add button, fill in the entries as shown and press Commit. The values will get added. To delete a row we must type in the accno and press Search. All the values would be shown in the corresponding textboxes. After pressing Commit, the row will get deleted. Same works for updating a row. We must type in the accno and press Search. After doing this we should press Commit for the changes to be made in the data.&lt;/span&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;If we press the small, depressed arrow on the side of accno field, the rows get sorted according to descending values of accno. On pressing it again they get sorted according to ascending values of accno.&lt;/span&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;We have wrapped all functionality of adding, deleting and updating the database in a class called bank. &lt;/span&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;In the constructor of the bank class, we initialized the connection and command string passed it to the constructor of the &lt;b&gt; DataAdapter&lt;/b&gt; class. Next we filled the &lt;b&gt; DataSet&lt;/b&gt; with account and extracted the table in object &lt;b&gt; dt&lt;/b&gt; of the &lt;b&gt; DataTable&lt;/b&gt; class.&lt;/span&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;We have written different functions for adding, deleting and updating rows. We plan to add rows in the table only if the accno is unique. This means every account holder should have just one row. So no two rows with same accno are added. To check this we have written a new function &lt;b&gt; getrowbyid( )&lt;/b&gt;. In this method we have used the &lt;b&gt; Select( ) &lt;/b&gt; method which gets an array of all DataRow objects that match the filter criteria. The filter criterion in our case is the accno. If such a row is found then it is returned. If such a row is not found an exception will be thrown. If an exception is thrown, we catch it and return just a null. In the &lt;b&gt; addnewrec( )&lt;/b&gt; method if a null is returned by the &lt;b&gt; getrowbyid( )&lt;/b&gt; method it means that no such row is already present. If its so we add a new row. The logic is same as the previous program. If not we just flash a message.&lt;/span&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;For deletion we have again used the &lt;b&gt; Select( )&lt;/b&gt; method. This method will return the collection of rows satisfying the selection criterion. We will definitely have just one row in the collection because in our table the accno is not repeated. (Such a field, which has unique value and no two rows have the same value, is called the primary key of the table). The &lt;b&gt; Delete( )&lt;/b&gt; method just deletes the specified row. After deleting it from the DataSet we call he Update( ) method to reconcile the changes.&lt;/span&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Updating is done by initializing the corresponding field with new values and just calling the &lt;b&gt; Update( ) &lt;/b&gt; method. A property &lt;b&gt; dset&lt;/b&gt; is also written which gets the DataSet &lt;i&gt;ds&lt;/i&gt;.&lt;/span&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;As shown in the form there are three buttons provided for the three operations viz:- addition of a row, deletion of a row and updating a row, one for searching the table and another for committing the operation. The whole logic behind the working of the form is that we have created a private data member of the bank class in the form class. We have also added an int &lt;b&gt; m_oper&lt;/b&gt;, which will hold an int denoting which operation has to be performed. The default operation is 0 i.e. nothing. Events are added for all the buttons.&lt;/span&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;When the "Add" button is clicked all the texboxes are enabled. The "Commit" button is enabled and the "Search" button is disabled. This is so because we don't have to search the table to add a row. Finally and most importantly m_oper is set to value 1.&lt;br /&gt;When the "Update" button is clicked the Acc no textbox is enabled. The Search button is enabled. This is because we have to search for the record and then update it. On pressing "Search" the &lt;b&gt; search_click( )&lt;/b&gt; event gets called. In this event we first get the row to be updated using the following statement:&lt;/span&gt;&lt;/p&gt;       &lt;blockquote&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;DataRow r = b.getrowbyid ( Int32.Parse ( acc.Text ) ) ;&lt;/span&gt;&lt;/p&gt;       &lt;/blockquote&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;b&gt;Int32.Parse( )&lt;/b&gt; method converts the text in the acc textbox to an int. This int is passed to the &lt;b&gt; getrowbyid( )&lt;/b&gt; method which returns the specified selected row. After getting the row we set the textboxes with the values from the row and enable them.&lt;/span&gt;&lt;/p&gt;       &lt;blockquote&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;name.Text = r[1].ToString ( ) ;&lt;br /&gt;    bal.Text = r[2].ToString ( ) ;&lt;/span&gt;&lt;/p&gt;       &lt;/blockquote&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;We can then change the text in the textboxes to the new values. This is all done in the &lt;b&gt; search_click( )&lt;/b&gt; event. After the control returns back to &lt;b&gt; updatebut_Click( )&lt;/b&gt; event m_oper is set to 2.&lt;/span&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;When the "Delete" button is clicked a similar thing happens and m_oper is set to 3. We do not change the text in the textboxes and hence the values, because we plan to delete the row and not update it.&lt;/span&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;After all this is done we press the "Commit" button. This calls the corresponding event. In this event we kept a switch on m_oper and called the corresponding methods of the bank class.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2669703299703988339-3517270556075236888?l=adotutorial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adotutorial.blogspot.com/feeds/3517270556075236888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2669703299703988339&amp;postID=3517270556075236888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/3517270556075236888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/3517270556075236888'/><link rel='alternate' type='text/html' href='http://adotutorial.blogspot.com/2008/08/bank-example-in-adonet.html' title='Bank Example in ADO.NET'/><author><name>Siebel Expert</name><uri>http://www.blogger.com/profile/11533458660230230361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2669703299703988339.post-519239418252180837</id><published>2008-08-26T21:22:00.003-07:00</published><updated>2008-12-22T21:14:38.168-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataTable'/><category scheme='http://www.blogger.com/atom/ns#' term='Ado.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='DataSet'/><title type='text'>Using DataSet &amp; DataTable</title><content type='html'>&lt;span style="font-family:Arial;font-size:85%;"&gt;A &lt;b&gt; DataSet&lt;/b&gt; is used for the disconnected approach. We connect to the database, fill in the &lt;b&gt; DataSet&lt;/b&gt; with the data and go offline. The &lt;b&gt; DataSet&lt;/b&gt; is designed as an offline container of data. Actually filling of data in a &lt;b&gt; DataSet&lt;/b&gt; need not be necessarily through a database, it could be through any file also or straight away from a device. To fill in a &lt;b&gt; DataSet&lt;/b&gt; we need a &lt;b&gt;DataAdapter&lt;/b&gt;. A &lt;b&gt; DataAdapter&lt;/b&gt; is used to retrieve data from a data source and populate tables within a &lt;b&gt;DataSet&lt;/b&gt;. Take a look at the following program. We have used the &lt;b&gt; OLE DB .NET Data Provider&lt;/b&gt;. We have used Microsoft Access to create the account table.&lt;/span&gt; &lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;class myclass&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 20px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; static void Main( string[] args)&lt;br /&gt; {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  string str="Provider=Microsoft.Jet.OLEDB.4.0 ;Data&lt;br /&gt;     Source=c:\\bank.mdb";&lt;br /&gt;  string cmd = "SELECT accno, name, balance from account" ;&lt;br /&gt;  OleDbDataAdapter dest= new OleDbDataAdapter( cmd, str ) ;&lt;br /&gt;  OleDbCommandBuilder mybuilder= new&lt;br /&gt;     OleDbCommandBuilder (dest) ;&lt;br /&gt;  DataSet ds = new DataSet ( ) ;&lt;br /&gt;  dest.Fill ( ds, "account" ) ;&lt;br /&gt;  DataTable dt = ds.Tables["account"] ;&lt;br /&gt;  DataRow nrow = ds.Tables["account"].NewRow ( ) ;&lt;br /&gt;  nrow[0] = 6;&lt;br /&gt;  nrow[1] = "Rashi";&lt;br /&gt;  nrow[2] =76000 ;&lt;br /&gt;  ds.Tables["account"].Rows.Add ( nrow ) ;&lt;br /&gt;  dest.Update ( ds, "account" ) ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 20px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;After initializing the command and connection strings, we created the &lt;b&gt; DataAdapter&lt;/b&gt; object. This object is passed to the constructor of the &lt;b&gt; OleDbCommandBuilder&lt;/b&gt; class. This is because the &lt;b&gt; DataAdapter&lt;/b&gt; class does not automatically generate the SQL statements to make changes in the database. The &lt;b&gt; OleDbCommandBuilder&lt;/b&gt; class does so. Now we need to populate a &lt;b&gt; DataSet&lt;/b&gt; with the &lt;b&gt; DataAdapter&lt;/b&gt;. The &lt;b&gt; Fill( ) &lt;/b&gt; method does the filling of &lt;b&gt; DataSet&lt;/b&gt;. The statement&lt;/span&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;ds.Tables["account"]&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;returns the table "&lt;b&gt;account&lt;/b&gt;" from the &lt;b&gt; DataSet&lt;/b&gt;. Tables is a property belonging to the DataSet class. It gets the collection of Tables contained in the &lt;b&gt; DataSet&lt;/b&gt;. "&lt;b&gt;account&lt;/b&gt;" is an indexer on the collection of tables. We collected this "account" table in a new &lt;b&gt; DataTable&lt;/b&gt; object: - &lt;b&gt; dt&lt;/b&gt;. We then created a new row in the account table. Next we initialized it with values. Now we need to add it to the table. This is achieved through the following&lt;/span&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;ds.Tables["account"].Rows.Add ( nrow ) ;&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Rows is a property belonging to the &lt;b&gt; DataTable&lt;/b&gt; class. It gets the collection of rows contained in the table i.e. it returns a &lt;b&gt; DataRowCollection&lt;/b&gt; object. This class has a method &lt;b&gt; Add( ) &lt;/b&gt; in it. The method &lt;b&gt; Add( )&lt;/b&gt; adds a &lt;b&gt; DataRow&lt;/b&gt; to the &lt;b&gt; DataRowCollection&lt;/b&gt;. Now to reconcile the changes in the database we use the Update( ) method. This method calls the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified &lt;b&gt; DataSet&lt;/b&gt; from a &lt;b&gt; DataTable.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2669703299703988339-519239418252180837?l=adotutorial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adotutorial.blogspot.com/feeds/519239418252180837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2669703299703988339&amp;postID=519239418252180837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/519239418252180837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/519239418252180837'/><link rel='alternate' type='text/html' href='http://adotutorial.blogspot.com/2008/08/using-dataset-datatable.html' title='Using DataSet &amp; DataTable'/><author><name>Siebel Expert</name><uri>http://www.blogger.com/profile/11533458660230230361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2669703299703988339.post-5685344422623958243</id><published>2008-08-26T21:22:00.001-07:00</published><updated>2008-12-22T21:14:38.168-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ado.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='SqlCommand Class'/><title type='text'>SqlCommand Class</title><content type='html'>&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;b&gt;ExecuteReader( )&lt;/b&gt;, &lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;b&gt;ExecuteNonQuery( ) and &lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;b&gt;ExecuteScalar( ) &lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt; are three important methods in the Command class.&lt;/span&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;b&gt;ExecuteReader( ):-&lt;/b&gt;This method will execute the command and return an &lt;b&gt;SqlDataReader&lt;/b&gt; object.&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;b&gt;ExecuteNonQuery( )&lt;/b&gt;:- Executes the command and returns the number of records affected.&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;b&gt;ExecuteScalar( )&lt;/b&gt;: - Executes the query and returns a single result such as count on records in a given table or max value of some field etc.&lt;/span&gt;&lt;/p&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td width="13%"&gt;       &lt;hr size="4" color="#990033"&gt;     &lt;/td&gt;     &lt;td width="25%" bg style="color:#cc0099;"&gt;&lt;span style="font-family:Comic Sans MS;font-size:100%;color:#ffffff;"&gt;ExecuteReader(       ) &lt;/span&gt;&lt;/td&gt;     &lt;td width="62%"&gt;       &lt;hr size="4" color="#990033"&gt;     &lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin: 0pt;" align="justify"&gt; &lt;/p&gt; &lt;p style="margin: 0pt;" align="left"&gt; &lt;/p&gt; &lt;p style="margin: 0pt;" align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Below program Shows how to use &lt;b&gt;ExecuteReader( )&lt;/b&gt; Method:&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="left"&gt; &lt;/p&gt; &lt;p style="margin: 0pt;" align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Data.SqlClient;&lt;br /&gt;class myclass&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 20px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;static void Main( string[ ] args)&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;string str= "Database = bank ; server = kicit ; Trusted_Connection =true";&lt;br /&gt;string cmd = "SELECT accno, name, balance from account" ;&lt;br /&gt;SqlConnection con = new SqlConnection ( str ) ;&lt;br /&gt;SqlCommand com = new SqlCommand ( cmd, con ) ;&lt;br /&gt;con.Open();&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;SqlDataReader r = com.ExecuteReader ( ) ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt; &lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;while ( r.Read ( ) )&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;Console.WriteLine ( r[0] + " " + r[1] + " " + r[2] ) ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt; &lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;con.Close ( ) ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 20px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;b&gt;The output is :&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;1 Rahul 200000&lt;br /&gt;2 Subash 300000&lt;br /&gt;3 Anita 100000&lt;br /&gt;4 Preeti 120000&lt;br /&gt;5 Kapil 8000&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;First we need to get connected to the database. To do so, we have to write a connection string. The connection string includes database name, server, database provider, user name, password and whether it�s a trusted connection or not. In our program the database name is bank and server name is &lt;b&gt;kicit&lt;/b&gt;. We have initialized Trusted Connection to true. This means even if we don�t specify the username and password its fine. If the value is set to false we have to specify a username and password. This connection string is stored in &lt;b&gt;str&lt;/b&gt;.&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;The command string is stored in &lt;b&gt;cmd&lt;/b&gt;. &lt;b&gt;cmd&lt;/b&gt; contains the query to be executed. The query we have used here is &lt;b&gt;�SELECT accno, name, balance from account�&lt;/b&gt;. This is an Sql query, which selects the specified fields:- &lt;b&gt;accno&lt;/b&gt;, &lt;b&gt;name&lt;/b&gt; and &lt;b&gt;balance&lt;/b&gt; from the �&lt;b&gt;account&lt;/b&gt;� table.&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;To make a connection, we pass the connection string to the &lt;b&gt;SqlConnection&lt;/b&gt; constructor. To the &lt;b&gt;SqlCommand&lt;/b&gt; constructor we pass the connection as well as the command string. The &lt;b&gt;Open( )&lt;/b&gt; method opens a database connection with the property settings specified by the connection string. The &lt;b&gt;SqlDataReader&lt;/b&gt; class reads a stream of rows from an SQL Server database. To create an &lt;b&gt;SqlDataReader&lt;/b&gt; class we have to call the &lt;b&gt;ExecuteReader( )&lt;/b&gt; method belonging to the &lt;b&gt;SqlCommand&lt;/b&gt; class. This method will execute the command and return an &lt;b&gt;SqlDataReader&lt;/b&gt; object. The &lt;b&gt;Read( )&lt;/b&gt; method iterates through the records advancing the &lt;b&gt;SqlDataReader&lt;/b&gt; by one record every time.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="justify"&gt; &lt;/p&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td width="13%"&gt;       &lt;hr size="4" color="#990033"&gt;     &lt;/td&gt;     &lt;td width="23%" bg style="color:#cc0099;"&gt;&lt;span style="font-family:Comic Sans MS;font-size:100%;color:#ffffff;"&gt;ExecuteNonQuery(       ) &lt;/span&gt;&lt;/td&gt;     &lt;td width="64%"&gt;       &lt;hr size="4" color="#990033"&gt;     &lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Now lets have a look at a program using the &lt;b&gt; ExecteNonQuery( )&lt;/b&gt; method. &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Data.SqlClient ;&lt;br /&gt;class myclass&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 20px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; static void Main( string[] args)&lt;br /&gt; {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  string str = " Database = bank ; server = kicit ;&lt;br /&gt;     Trusted_Connection =true";&lt;br /&gt;  string cmd = "Insert into account values ( 6, 'Aakash', 25000 ) ";&lt;br /&gt;  SqlConnection con = new SqlConnection ( str ) ;&lt;br /&gt;  SqlCommand com = new SqlCommand ( cmd, con ) ;&lt;br /&gt;  con.Open ( ) ;&lt;br /&gt;  com.ExecuteNonQuery ( ) ;&lt;br /&gt;  con.Close ( ) ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 20px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;The "Insert into account values (6, 'Aakash', 25000)" query inserts a new row in the table. After opening the connection, the query is executed and the connection is closed.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="justify"&gt; &lt;/p&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td width="13%"&gt;       &lt;hr size="4" color="#990033"&gt;     &lt;/td&gt;     &lt;td width="25%" bg style="color:#cc0099;"&gt;&lt;span style="font-family:Comic Sans MS;font-size:100%;color:#ffffff;"&gt;ExecuteScalar(       )&lt;/span&gt;&lt;/td&gt;     &lt;td width="62%"&gt;       &lt;hr size="4" color="#990033"&gt;     &lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Now lets look at a program a program using the &lt;b&gt; ExecuteScalar( )&lt;/b&gt; method:&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Data.SqlClient;&lt;br /&gt;class myclass&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 20px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;static void Main( string[] args)&lt;br /&gt; {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;string str = " Database = bank ; server = kicit ;&lt;br /&gt;     Trusted_Connection=true";&lt;br /&gt;  string cmd = "SELECT count(*) from account" ;&lt;br /&gt;  SqlConnection con = new SqlConnection ( str ) ;&lt;br /&gt;  con.Open ( ) ;&lt;br /&gt;  SqlCommand com = new SqlCommand ( cmd, con ) ;&lt;br /&gt;  Object o = com.ExecuteScalar( ) ;&lt;br /&gt;  Console.WriteLine ( o ) ;&lt;br /&gt;  con.Close ( ) ;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt 0pt 0pt 20px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;The output here is: - 6. The "SELECT count(*) from account" query counts the no of rows in our database.&lt;/span&gt;        &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2669703299703988339-5685344422623958243?l=adotutorial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adotutorial.blogspot.com/feeds/5685344422623958243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2669703299703988339&amp;postID=5685344422623958243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/5685344422623958243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/5685344422623958243'/><link rel='alternate' type='text/html' href='http://adotutorial.blogspot.com/2008/08/sqlcommand-class.html' title='SqlCommand Class'/><author><name>Siebel Expert</name><uri>http://www.blogger.com/profile/11533458660230230361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2669703299703988339.post-6424804971466859709</id><published>2008-08-26T21:21:00.001-07:00</published><updated>2008-12-22T21:14:38.168-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Providers'/><category scheme='http://www.blogger.com/atom/ns#' term='Ado.Net'/><title type='text'>Data Providers</title><content type='html'>&lt;span style="font-family:Arial;font-size:85%;"&gt;MSDE is the Microsoft Database Engine, and is a version of SQL Server; this is shipped along with VS.NET and does not need explicit installation.&lt;/span&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td width="13%"&gt;       &lt;hr size="4" color="#990033"&gt;     &lt;/td&gt;     &lt;td width="30%" bg style="color:#cc0099;"&gt;&lt;span style="font-family:Comic Sans MS;font-size:100%;color:#ffffff;"&gt;SQL       Data Providers&lt;/span&gt;&lt;/td&gt;     &lt;td width="57%"&gt;       &lt;hr size="4" color="#990033"&gt;     &lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;To write programs for accessing, manipulating, or updating database, we have to first create a database. To create a database, open the server explorer window. If its not visible press Ctrl+Alt+S.&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;In the �Servers� tree expand the �SQL servers� node. You will find your computer name added there. Right click on it and select �New Database�. Name the new database as �bank� as shown in the following dialog box:&lt;/span&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.kicit.com/freebies/csharp_net_source_code/Ado.net/ado2.h2.jpg" width="412" border="0" height="263" /&gt;&lt;/p&gt;          &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;We have checked the �Use Windows NT Integrated Security� radio button. This program will hence work only when we log on with our username and password. Press OK and a new database called bank will appear in the tree. Now we need to create a table in our database called account. To create a new table, expand the bank node and right click on �Tables�, select �New Table� from the menu. A new blank table would appear. Now we need to fill in the entries and specify the attributes of the table. This is how we want our table to be:&lt;/span&gt;&lt;/p&gt;       &lt;p align="center"&gt;&lt;img src="http://www.kicit.com/freebies/csharp_net_source_code/Ado.net/ado2.h3.jpg" width="420" border="0" height="126" /&gt;&lt;/p&gt;       &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;We want three attributes in the table viz:-       &lt;b&gt; accno&lt;/b&gt; (int), &lt;b&gt; name&lt;/b&gt; (varchar) and &lt;b&gt;balance&lt;/b&gt;(float). Save the table and name it as: - account. Close this window. Expand the table�s tree and you will find that account has been added. Double click on this and start filling in the entries as shown:&lt;/span&gt;&lt;/p&gt;       &lt;p align="center"&gt;&lt;img src="http://www.kicit.com/freebies/csharp_net_source_code/Ado.net/ado2.h4.gif" width="407" border="0" height="177" /&gt;&lt;/p&gt;       &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Now lets write a program to access these values and print them out       Here the code for the program:&lt;/span&gt;&lt;/p&gt;       &lt;p style="margin: 0pt;" align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;using System;&lt;br /&gt;      using System.Data;&lt;br /&gt;      using System.Data.SqlClient;&lt;br /&gt;      class myclass&lt;br /&gt;      {&lt;/span&gt;&lt;/p&gt;       &lt;p style="margin: 0pt 0pt 0pt 20px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; static void Main( string[ ] args)&lt;br /&gt; {&lt;/span&gt;&lt;/p&gt;       &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  string str= "Database = bank ; server = kicit ;     Trusted_Connection =true";&lt;br /&gt;  string cmd = "SELECT accno, name, balance from account" ;&lt;br /&gt;  SqlConnection con = new SqlConnection ( str ) ;&lt;br /&gt;  SqlCommand com = new SqlCommand ( cmd, con ) ;&lt;br /&gt;  con.Open();&lt;/span&gt;&lt;/p&gt;       &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  SqlDataReader r = com.ExecuteReader ( ) ;&lt;/span&gt;&lt;/p&gt;       &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt; &lt;/p&gt;       &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  while ( r.Read ( ) )&lt;/span&gt;&lt;/p&gt;       &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   Console.WriteLine ( r[0] + "  " + r[1] + "  " + r[2] ) ;&lt;/span&gt;&lt;/p&gt;       &lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt; &lt;/p&gt;       &lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  con.Close ( ) ;&lt;/span&gt;&lt;/p&gt;       &lt;p style="margin: 0pt 0pt 0pt 20px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; }&lt;/span&gt;&lt;/p&gt;       &lt;p style="margin: 0pt;" align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;}&lt;/span&gt;&lt;/p&gt;       &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;b&gt;The output is :&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;       &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;1  Rahul  200000&lt;br /&gt;      2  Subash  300000&lt;br /&gt;      3  Anita  100000&lt;br /&gt;      4  Preeti  120000&lt;br /&gt;      5  Kapil  8000&lt;/span&gt;&lt;/p&gt;       &lt;p align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;b&gt;Explanation: -&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;       &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;First we need to get connected to the database. To do so, we have to write a connection string. The connection string includes database name, server, database provider, user name, password and whether it�s a trusted connection or not. In our program the database name is bank and server name is &lt;b&gt; kicit&lt;/b&gt;. We have initialized Trusted Connection to true. This means even if we don�t specify the username and password its fine. If the value is set to false we have to specify a username and password. This connection string is stored in &lt;b&gt; str&lt;/b&gt;.&lt;/span&gt;&lt;/p&gt;       &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;The command string is stored in       &lt;b&gt; cmd&lt;/b&gt;. &lt;b&gt; cmd&lt;/b&gt; contains the query to be executed. The query we have used here is       &lt;b&gt; �SELECT accno, name, balance from account�&lt;/b&gt;. This is an Sql query, which selects the specified fields:-       &lt;b&gt; accno&lt;/b&gt;, &lt;b&gt; name&lt;/b&gt; and &lt;b&gt; balance&lt;/b&gt; from the �&lt;b&gt;account&lt;/b&gt;� table.&lt;/span&gt;&lt;/p&gt;       &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;To make a connection, we pass the connection string to the       &lt;b&gt; SqlConnection&lt;/b&gt; constructor. To the &lt;b&gt; SqlCommand&lt;/b&gt; constructor we pass the connection as well as the command string. The       &lt;b&gt; Open( )&lt;/b&gt; method opens a database connection with the property settings specified by the connection string. The       &lt;b&gt; SqlDataReader&lt;/b&gt; class reads a stream of rows from an SQL Server database. To create an       &lt;b&gt; SqlDataReader&lt;/b&gt; class we have to call the &lt;b&gt; ExecuteReader( )&lt;/b&gt; method belonging to the       &lt;b&gt; SqlCommand&lt;/b&gt; class. This method will execute the command and return an       &lt;b&gt; SqlDataReader&lt;/b&gt; object. The &lt;b&gt; Read( )&lt;/b&gt; method iterates through the records advancing the       &lt;b&gt; SqlDataReader&lt;/b&gt; by one record every time. Here we have used the ordinal indexer to access individual values of a row referenced by the       &lt;b&gt; SqlDataReader&lt;/b&gt;. We could have also used the &lt;b&gt; GetString( )&lt;/b&gt; method which gets the value of the specified column as a string i.e. we could have written:&lt;/span&gt;&lt;/p&gt;       &lt;blockquote&gt;         &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;r.GetString(0)&lt;/span&gt;&lt;/p&gt;       &lt;/blockquote&gt;       &lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;to get the &lt;b&gt; accno&lt;/b&gt; field of the row referenced by the       &lt;b&gt; SqlDataReader&lt;/b&gt;. There is another way of doing it: &lt;b&gt; -r[�name�]&lt;/b&gt;. In the end the connection is closed using the       &lt;b&gt; Close( )&lt;/b&gt; method.       &lt;/span&gt;       &lt;/p&gt;&lt;p align="justify"&gt;       &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;         &lt;tbody&gt;&lt;tr&gt;           &lt;td width="13%"&gt;             &lt;hr size="4" color="#990033"&gt;           &lt;/td&gt;           &lt;td width="30%" bg style="color:#cc0099;"&gt;&lt;span style="font-family:Comic Sans MS;font-size:100%;color:#ffffff;"&gt;OLEDB             Data Providers&lt;/span&gt;&lt;/td&gt;           &lt;td width="57%"&gt;             &lt;hr size="4" color="#990033"&gt;           &lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;       &lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt; For OLE DB .NET Data Provider we will have to create our tables in Microsoft Access. These tables should have the same values and fields. After creating such a table in Microsoft Access, save it as &lt;b&gt; bank.mdb&lt;/b&gt; in the C directory. The program will look like this:       &lt;/span&gt;       &lt;/p&gt;&lt;p align="justify"&gt;       &lt;/p&gt;&lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;using System;&lt;br /&gt;      using System.Data;&lt;br /&gt;      using System.Data.OleDb;&lt;br /&gt;      class myclass&lt;br /&gt;      {&lt;/span&gt;       &lt;/p&gt;&lt;p style="margin: 0pt 0pt 0pt 20px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt; static void Main( string[ ] args)&lt;br /&gt; {&lt;/span&gt;       &lt;/p&gt;&lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;string str="Provider =Microsoft.Jet.OLEDB.4.0 ; Data Source = c:\\bank.mdb";string cmd = "SELECT accno, name, balance from account" ;&lt;br /&gt;  OleDbConnection con = new OleDbConnection ( str ) ;&lt;br /&gt;  OleDbCommand com = new OleDbCommand ( cmd, con ) ;&lt;br /&gt;  con.Open();&lt;br /&gt;     &lt;br /&gt;  OleDbDataReader r = com.ExecuteReader ( ) ;&lt;/span&gt;       &lt;/p&gt;&lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  while ( r.Read ( ) )&lt;/span&gt;       &lt;/p&gt;&lt;p style="margin: 0pt 0pt 0pt 60px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;   Console.WriteLine ( r[0] + "  " + r[1] + "  " + r[2] ) ; &lt;/span&gt;       &lt;/p&gt;&lt;p style="margin: 0pt 0pt 0pt 40px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;  con.Close ( ) ;&lt;/span&gt;       &lt;/p&gt;&lt;p style="margin: 0pt 0pt 0pt 20px;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;&lt;br /&gt; }&lt;/span&gt;       &lt;/p&gt;&lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;}&lt;/span&gt;       &lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;The output here remains the same. We have only changed the connection string and the names of classes, just replacing �&lt;b&gt;Sql&lt;/b&gt;� everywhere with �&lt;b&gt;OleDb&lt;/b&gt;�. &lt;/span&gt;       &lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;       There are three types of OleDb .NET Data Providers viz: - &lt;b&gt; SQLOLEDB&lt;/b&gt;,       &lt;b&gt; MSDAORA&lt;/b&gt; and&lt;b&gt; Microsoft.Jet.OLEDB.4.0.&lt;/b&gt; We have used the last one. This is specified in the connection string used.&lt;/span&gt;       &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2669703299703988339-6424804971466859709?l=adotutorial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adotutorial.blogspot.com/feeds/6424804971466859709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2669703299703988339&amp;postID=6424804971466859709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/6424804971466859709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/6424804971466859709'/><link rel='alternate' type='text/html' href='http://adotutorial.blogspot.com/2008/08/data-providers.html' title='Data Providers'/><author><name>Siebel Expert</name><uri>http://www.blogger.com/profile/11533458660230230361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2669703299703988339.post-6276268742412064061</id><published>2008-08-26T21:20:00.000-07:00</published><updated>2008-12-22T21:14:38.168-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ado.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Introduction to ADO.NET'/><title type='text'>Introduction to ADO.NET</title><content type='html'>&lt;span style=";font-family:Arial;font-size:85%;"  &gt;ADO.NET deals with accessing Databases. It�s a new technology that runs within the .NET environment. It uses the concept of managed code. ADO.NET provides access to data sources such as Microsoft SQL Server, OLE DB and XML. Applications connect to these data sources to access, manipulate or update data.&lt;/span&gt; &lt;p align="justify"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;The traditional difficulties regarding database is that it relies on connection-based two-tier model. Instead programmers today wish to make n-tier applications using a disconnected approach.&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;A two-tier model means there is a server and a client in the application. The server accesses the client. An n-tier applications means there will be more than a server or a client viz: - one or more databases (data-tier), business tier, and presentation-tier.&lt;br /&gt;In early days the client had to be connected with the server and remain connected till the whole procedure or transaction was completed. This was called the connected approach. In such an approach lots of bandwidth was required because if 100 clients were to use a server, each would need a connection. Time, resources and bandwidth became major constraints on such architectures.&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;In ADO 2.0 disconnected data approach was used. In this approach ADO used Record Sets. All the contents of the server were copied in the Record Set. This allowed the client to get disconnected from the server, work on the Record Set and copy the changes back to the data store again. This approach did not catch on due to security problems. This approach used COM marshalling to transmit a disconnected data set, it supported only those data types defined by the COM standards and hence required type conversions.&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;ADO.NET is designed from ground up to help solve these problems. Here transmission of data is in XML format. XML format places no restriction on the data types and requires no type conversion. &lt;/span&gt;&lt;/p&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td width="13%"&gt;&lt;hr size="4" color="#990033"&gt;&lt;/td&gt;     &lt;td bg="" style="color: rgb(204, 0, 153);" width="30%"&gt;&lt;span style="color: rgb(255, 255, 255);font-family:Comic Sans MS;font-size:100%;"  &gt;ADO.NET       Architecture&lt;/span&gt;&lt;/td&gt;     &lt;td width="57%"&gt;&lt;hr size="4" color="#990033"&gt;&lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;br /&gt;The ADO.NET architecture consists of two main components:- the &lt;b&gt; DataSet&lt;/b&gt; and the &lt;b&gt;NET Data Providers&lt;/b&gt;.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td width="13%"&gt;&lt;hr size="4" color="#990033"&gt;&lt;/td&gt;     &lt;td bg="" style="color: rgb(204, 0, 153);" width="14%"&gt;&lt;span style="color: rgb(255, 255, 255);font-family:Comic Sans MS;font-size:100%;"  &gt;DataSet &lt;/span&gt;&lt;/td&gt;     &lt;td width="73%"&gt;&lt;hr size="4" color="#990033"&gt;&lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin: 0pt;" align="justify"&gt; &lt;/p&gt; &lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;ADO.NET uses the disconnected approach using the &lt;b&gt; DataSet&lt;/b&gt;. The &lt;b&gt; DataSet&lt;/b&gt; is explicitly designed for data access independent of any data source. It can be used for data sources, XML data, or used to manage data local to the application. The &lt;b&gt; DataSet&lt;/b&gt; acts as a container. All the data coming from the database is dumped in the &lt;b&gt; DataSet&lt;/b&gt; for the local machine to use and manipulate. The database is then later updated back with the &lt;b&gt; DataSet&lt;/b&gt;. The &lt;b&gt; DataSet&lt;/b&gt; contains a collection of one or more &lt;b&gt; DataTable&lt;/b&gt; objects made up of rows and columns of data, as well as primary key, foreign key, constraint and relation information about the data in the &lt;b&gt; DataTable&lt;/b&gt; objects.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;A &lt;b&gt; DataSet&lt;/b&gt; can be thought of as a container of data. The &lt;b&gt; DataSet&lt;/b&gt; consists of &lt;b&gt; DataTables&lt;/b&gt;. &lt;b&gt; DataTables&lt;/b&gt; are similar to tables or relations in DBMS (Data Base Management Systems). A table consists of zero or more columns. A table is also generically called as a schema. &lt;b&gt; DataTables&lt;/b&gt; contain &lt;b&gt; DataRows&lt;/b&gt; and &lt;b&gt; DataColumns&lt;/b&gt;. Rows indicate one full entry or a tuple and columns indicate one property or attribute of the table.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;The following figure will serve as an example&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="justify"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="center"&gt;&lt;img src="http://www.kicit.com/freebies/csharp_net_source_code/Ado.net/ado1.gif" width="393" border="0" height="346" /&gt;&lt;/p&gt;    &lt;p style="margin: 0pt;" align="justify"&gt; &lt;/p&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td width="13%"&gt;&lt;hr size="4" color="#990033"&gt;&lt;/td&gt;     &lt;td bg="" style="color: rgb(204, 0, 153);" width="30%"&gt;&lt;span style="color: rgb(255, 255, 255);font-family:Comic Sans MS;font-size:100%;"  &gt;.NET       Data Providers&lt;/span&gt;&lt;/td&gt;     &lt;td width="57%"&gt;&lt;hr size="4" color="#990033"&gt;&lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin: 0pt;" align="justify"&gt; &lt;/p&gt; &lt;p style="margin: 0pt;" align="left"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;There are two .NET data providers available: - The &lt;b&gt; SQL Server .NET Data Provider &lt;/b&gt; and the &lt;b&gt; OLE DB .NET Data Provider&lt;/b&gt;. Depending on the design and data source for our application we can use any one of these two. The SQL Server .NET Data Provider uses its own protocol to communicate with the SQL Server. The OLE DB .NET Data Provider uses native OLE DB through COM interoperability to enable data access. To use the SQL Server .NET Data Provider, you must have access to Microsoft SQL Server 7.0 or later. SQL Server .NET Data Provider classes are located in the &lt;b&gt; System.Data.SqlClient&lt;/b&gt; namespace. To use the OLE DB .NET Data Provider, you must use an OLE DB provider (we have used Microsoft Access). OLE DB .NET Data Provider classes are located in the&lt;b&gt; System.Data.OleDb&lt;/b&gt; namespace. To use the OLE DB .NET Data Provider, you will have to include the &lt;b&gt; System.Data.OleDb&lt;/b&gt; namespace in your applications.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="left"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="left"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;These .NET providers include the &lt;b&gt; Connection&lt;/b&gt; object, the &lt;b&gt; Command&lt;/b&gt; Object, the &lt;b&gt; DataReader&lt;/b&gt; and the &lt;b&gt; DataAdapter&lt;/b&gt; in their corresponding namespaces. For e.g. the &lt;b&gt; Connection&lt;/b&gt; class in the Sql Server .NET Provider is written as &lt;b&gt; SqlConnection&lt;/b&gt; and its equivalent in the OLE DB Service Provider is written as &lt;b&gt; OleDbConnection&lt;/b&gt;. In the same way for all the four classes the corresponding names are prefaced with Sql or OleDb accordingly.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="left"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="left"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;The &lt;b&gt; Connection&lt;/b&gt; object provides connectivity to a data source. The &lt;b&gt; Command&lt;/b&gt; object enables access to database commands to return data, modify data, run stored procedures, and send or retrieve parameter information. A command in its simplest form is nothing but an SQL query. The &lt;b&gt; DataReader&lt;/b&gt; provides a stream of read-only and forward-only data from the data source. A read-only data means that it cannot be changed using the &lt;b&gt; DataReader&lt;/b&gt; and forward-only means we cannot traverse backwards. Finally, the &lt;b&gt; DataAdapter&lt;/b&gt; provides the bridge between the &lt;b&gt; DataSet&lt;/b&gt; object and the data source.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="left"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="left"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;You should see the next article to get this clear. We have written two programs using both the .NET Data Providers. Both programs do the same thing. &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0pt;" align="left"&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2669703299703988339-6276268742412064061?l=adotutorial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adotutorial.blogspot.com/feeds/6276268742412064061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2669703299703988339&amp;postID=6276268742412064061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/6276268742412064061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2669703299703988339/posts/default/6276268742412064061'/><link rel='alternate' type='text/html' href='http://adotutorial.blogspot.com/2008/08/introduction-to-adonet.html' title='Introduction to ADO.NET'/><author><name>Siebel Expert</name><uri>http://www.blogger.com/profile/11533458660230230361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
