<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>.NET Programming Tips and Tricks</title>
	<atom:link href="http://vinbhat.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://vinbhat.wordpress.com</link>
	<description>My stuff about .NET, C#, ASP.NET, AJAX, Visual Studio, SQL Server, XML, Web Services, WCF, WPF, WF, CRM, etc.</description>
	<lastBuildDate>Sat, 28 Mar 2009 18:02:03 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='vinbhat.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/4293ba32703b30d85515c66bcf7d9c15?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>.NET Programming Tips and Tricks</title>
		<link>http://vinbhat.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://vinbhat.wordpress.com/osd.xml" title=".NET Programming Tips and Tricks" />
		<item>
		<title>System.Diagnostics.Debug.Assert</title>
		<link>http://vinbhat.wordpress.com/2009/03/28/systemdiagnosticsdebugassert/</link>
		<comments>http://vinbhat.wordpress.com/2009/03/28/systemdiagnosticsdebugassert/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 17:58:54 +0000</pubDate>
		<dc:creator>vinbhat</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[best practice]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[System.Diagnostics.Debug.Assert]]></category>

		<guid isPermaLink="false">http://vinbhat.wordpress.com/2009/03/28/systemdiagnosticsdebugassert/</guid>
		<description><![CDATA[Checks for a condition and displays a message if the condition is false.
Assert(Boolean)	 Checks for a condition and outputs the call stack if the condition is false.
Refer: http://msdn.microsoft.com/en-us/library/system.diagnostics.debug.assert.aspx
One advantage of Debug.Assert() is that the C# and VB compilers (not C++) eliminate the Debug.Assert() statement from the CIL code when the DEBUG precompile constant is not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vinbhat.wordpress.com&blog=4173556&post=74&subd=vinbhat&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Checks for a condition and displays a message if the condition is false.<br />
Assert(Boolean)	 Checks for a condition and outputs the call stack if the condition is false.<br />
Refer: <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.debug.assert.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/system.diagnostics.debug.assert.aspx</a></p>
<p>One advantage of Debug.Assert() is that the C# and VB compilers (not C++) eliminate the Debug.Assert() statement from the CIL code when the DEBUG precompile constant is not defined.<br />
Refer: <a href="http://mark.michaelis.net/Blog/DontUseTheSystemDiagnosticsAssertMethodsUnless.aspx" target="_blank">http://mark.michaelis.net/Blog/DontUseTheSystemDiagnosticsAssertMethodsUnless.aspx</a></p>
<p><strong>Dont use it in production / release code.</strong></p>
Posted in .NET, best practice, C#, programming Tagged: .NET, C#, System.Diagnostics.Debug.Assert <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vinbhat.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vinbhat.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vinbhat.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vinbhat.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vinbhat.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vinbhat.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vinbhat.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vinbhat.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vinbhat.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vinbhat.wordpress.com/74/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vinbhat.wordpress.com&blog=4173556&post=74&subd=vinbhat&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://vinbhat.wordpress.com/2009/03/28/systemdiagnosticsdebugassert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/66630fa4bf13770740b398485e598461?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vinbhat</media:title>
		</media:content>
	</item>
		<item>
		<title>Exporting Data: Creating XML Files using C#</title>
		<link>http://vinbhat.wordpress.com/2008/08/19/exporting-data-creating-xml-files-using-c/</link>
		<comments>http://vinbhat.wordpress.com/2008/08/19/exporting-data-creating-xml-files-using-c/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 22:22:16 +0000</pubDate>
		<dc:creator>vinbhat</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSD]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[C# Class]]></category>
		<category><![CDATA[export data]]></category>
		<category><![CDATA[FileStream]]></category>
		<category><![CDATA[XmlSerializer]]></category>

		<guid isPermaLink="false">http://vinbhat.wordpress.com/?p=26</guid>
		<description><![CDATA[When you want to export data, you can choose formats such as XML or csv for the data files. The XML format is more widely used for its flexibility and is desirable by many systems to be able to process the data. This article explains how to create xml files from C# classes.
Situation: Where would [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vinbhat.wordpress.com&blog=4173556&post=26&subd=vinbhat&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>When you want to export data, you can choose formats such as XML or csv for the data files. The XML format is more widely used for its flexibility and is desirable by many systems to be able to process the data. This article explains how to create xml files from C# classes.</p>
<p><strong>Situation: Where would you use it:</strong><br />
- When you have to export data from one system to another system on a different platform<br />
- When you have to setup scheduled jobs to export data<br />
- When you want to keep a backup of key data on a regular basis. Though the database will give (better) alternatives, this technique will help you in shared hosting environments where you may want to keep a good backup of users who have signed up on your site, on a daily basis, for example.</p>
<p><strong>This article touches the following technological aspects:</strong><br />
- C# class library<br />
- Creating XML Schema (XSD)<br />
- Generating C# Class file from XSD<br />
- Generating XML files from C# object using XmlSerializer</p>
<div id="attachment_27" class="wp-caption alignnone" style="width: 390px"><a href="http://vinbhat.files.wordpress.com/2008/08/export-data-xml.gif"><img class="size-full wp-image-27" src="http://vinbhat.files.wordpress.com/2008/08/export-data-xml.gif?w=380&#038;h=170" alt="Generate xml to export data" width="380" height="170" /></a><p class="wp-caption-text">Figure 1: Generate xml to export data</p></div>
<p><strong>Example:</strong><br />
Suppose you have the following data which need to be exported in the form of XML files.<br />
<strong> Customers:</strong><br />
CustomerID<br />
CompanyName<br />
ContactName<br />
Address<br />
City<br />
PostalCode<br />
Country<br />
Phone<br />
Fax</p>
<p>Each customer may have one-to-many Orders.</p>
<p><strong>Orders:</strong><br />
OrderID<br />
CustomerID<br />
OrderDate<br />
RequiredDate<br />
ShippedDate<br />
ShipAddress<br />
ShipCity<br />
ShipPostalCode<br />
ShipCountry</p>
<p>To export this data on a daily basis, you would create XML files in the following format:</p>
<p>&lt;Customers&gt;<br />
&lt;CustomerID /&gt;<br />
&lt;CompanyName /&gt;<br />
&#8230;<br />
&lt;Orders&gt;<br />
&lt;OrderID /&gt;<br />
&lt;OrderDate /&gt;<br />
&#8230;<br />
&lt;/Orders&gt;<br />
&lt;Orders /&gt;<br />
&lt;Orders /&gt;<br />
&#8230;<br />
&lt;/Customers&gt;<br />
&lt;Customers /&gt;<br />
&lt;Customers /&gt;<br />
&#8230;</p>
<p><strong>Here are the steps to create it:</strong></p>
<p>1) Create new project in Visual Studio</p>
<div id="attachment_29" class="wp-caption alignnone" style="width: 310px"><a href="http://vinbhat.files.wordpress.com/2008/08/create-new-project.jpg"><img class="size-medium wp-image-29" src="http://vinbhat.files.wordpress.com/2008/08/create-new-project.jpg?w=300&#038;h=214" alt="Creating New Project" width="300" height="214" /></a><p class="wp-caption-text">Figure: Creating New Project</p></div>
<p>2) Add a class library to the project</p>
<div id="attachment_30" class="wp-caption alignnone" style="width: 310px"><a href="http://vinbhat.files.wordpress.com/2008/08/data-layer-class.jpg"><img class="size-medium wp-image-30" src="http://vinbhat.files.wordpress.com/2008/08/data-layer-class.jpg?w=300&#038;h=192" alt="Adding a class library to the solution" width="300" height="192" /></a><p class="wp-caption-text">Figure: Adding a class library to the solution</p></div>
<p>3) Add a schema (.xsd) file to the class library project</p>
<div id="attachment_31" class="wp-caption alignnone" style="width: 310px"><a href="http://vinbhat.files.wordpress.com/2008/08/add-schema-xsd.jpg"><img class="size-medium wp-image-31" src="http://vinbhat.files.wordpress.com/2008/08/add-schema-xsd.jpg?w=300&#038;h=181" alt="Adding schema file to the project" width="300" height="181" /></a><p class="wp-caption-text">Figure: Adding schema file to the project</p></div>
<p>4) Add schema elements. There are different ways in which you can add elements. One simple way is to drag and drop the database tables from the server explorer into the .xsd&#8217;s design area (when MySchema.xsd is opened with XML Schema Editor).</p>
<p>For this exercise, add Customers and Orders tables from the Northwind database from the server explorer.</p>
<p>The completed schema will look like this in the designer.</p>
<div id="attachment_32" class="wp-caption alignnone" style="width: 310px"><a href="http://vinbhat.files.wordpress.com/2008/08/myschema.jpg"><img class="size-medium wp-image-32" src="http://vinbhat.files.wordpress.com/2008/08/myschema.jpg?w=300&#038;h=136" alt="Customers and Orders schema" width="300" height="136" /></a><p class="wp-caption-text">Figure: Customers and Orders schema</p></div>
<p>See the project source code to view the XSD code (ie with XML tags)</p>
<p>5) Generate the C# Class from xsd</p>
<p>At the VS Command prompt, enter xsd /c MySchema.xsd.  This will create MySchema.cs. Rename it to MySchemaClass.cs, add it to the MyDataLayer class library project, update the namespace of MySchemaClass.cs</p>
<p>If your schema&#8217;s top element is named ExportData, (<span style="font-size:10pt;line-height:115%;font-family:&quot;color:blue;">&lt;</span><span style="font-size:10pt;line-height:115%;font-family:&quot;color:#a31515;">xs:element</span><span style="font-size:10pt;line-height:115%;font-family:&quot;color:blue;"> </span><span style="font-size:10pt;line-height:115%;font-family:&quot;color:red;">name</span><span style="font-size:10pt;line-height:115%;font-family:&quot;color:blue;">=</span><span style="font-size:10pt;line-height:115%;font-family:&quot;">&#8220;<span style="color:blue;">ExportData</span>&#8220;<span style="color:blue;">&gt;</span></span>) MyDataLayer class will have a class named ExportData (<span style="font-size:10pt;line-height:115%;font-family:&quot;color:blue;">public</span><span style="font-size:10pt;line-height:115%;font-family:&quot;"> <span style="color:blue;">partial</span> <span style="color:blue;">class</span> <span style="color:#2b91af;">ExportData</span></span>).</p>
<p>(I&#8217;ve also updated the OrderDate datatype to be string in the generated class, to produce a formatted output in the XML)</p>
<p>6) Create the object from ExportData class and fill the object&#8217;s properties with data (from Database or from any other source).</p>
<p>eg:</p>
<p><span style="font-size:10pt;line-height:115%;font-family:&quot;color:blue;">private</span><span style="font-size:10pt;line-height:115%;font-family:&quot;"> <span style="color:#2b91af;">ExportData</span> _exportXmlData = <span style="color:blue;">new</span> <span style="color:#2b91af;">ExportData</span>();</span><br />
(See the source code for full details).</p>
<p>7) Use the XmlSerializer to create XML files</p>
<p>eg:</p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;"><span> </span><span style="color:#2b91af;">FileStream</span> fs = <span style="color:blue;">null</span>;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;"><span> </span><span style="color:blue;">try<br />
</span><span> </span>{<br />
<span> </span><span style="color:#2b91af;">XmlSerializer</span> serializer = <span style="color:blue;">new</span> <span style="color:#2b91af;">XmlSerializer</span>(<span style="color:blue;">typeof</span>(<span style="color:#2b91af;">ExportData</span>));</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;"><span> </span>fs = <span style="color:blue;">new</span> <span style="color:#2b91af;">FileStream</span>(_fileName, <span style="color:#2b91af;">FileMode</span>.Create, <span style="color:#2b91af;">FileAccess</span>.Write);</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;">
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;"><span> </span><span style="background:yellow none repeat scroll 0;">serializer.Serialize(fs, _exportXmlData);</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;"><span> </span>}</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;"><span> </span><span style="color:blue;">catch<br />
</span><span> </span>{<br />
<span> </span><span style="color:blue;">throw</span>;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;"><span> </span>}<br />
<span> </span><span style="color:blue;">finally</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;"><span> </span>{</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;"><span> </span><span style="color:blue;">if</span> (fs != <span style="color:blue;">null</span>)<br />
</span><span style="font-size:10pt;font-family:&quot;"><span> </span>{<br />
<span> </span>fs.Close();</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;"><span> </span>}<br />
<span> </span>}</span></p>
<p>(See the source code for full details).</p>
<p>8 ) Run the project. It will create the XML files containing data, which can be exported (via ftp or saved directly to a shared drive).</p>
<p>A typical customer data in the XML file produced by this example will have the following format:</p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">Customers</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">CustomerID</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:10pt;font-family:&quot;">2<span style="color:blue;">&lt;/</span><span style="color:#a31515;">CustomerID</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">CompanyName</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:10pt;font-family:&quot;">Company Name 2<span style="color:blue;">&lt;/</span><span style="color:#a31515;">CompanyName</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">ContactName</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:10pt;font-family:&quot;">Contact Name 2<span style="color:blue;">&lt;/</span><span style="color:#a31515;">ContactName</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">City</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:10pt;font-family:&quot;">Dallas 2<span style="color:blue;">&lt;/</span><span style="color:#a31515;">City</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">Orders</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">OrderID</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:10pt;font-family:&quot;">2000<span style="color:blue;">&lt;/</span><span style="color:#a31515;">OrderID</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">OrderDate</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:10pt;font-family:&quot;">Tuesday, August 19, 2008<span style="color:blue;">&lt;/</span><span style="color:#a31515;">OrderDate</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">RequiredDate</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:10pt;font-family:&quot;">2008-08-21T14:33:31.8125-05:00<span style="color:blue;">&lt;/</span><span style="color:#a31515;">RequiredDate</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">ShipName</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:10pt;font-family:&quot;">UPS 2<span style="color:blue;">&lt;/</span><span style="color:#a31515;">ShipName</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;/</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">Orders</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">Orders</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">OrderID</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:10pt;font-family:&quot;">2001<span style="color:blue;">&lt;/</span><span style="color:#a31515;">OrderID</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">OrderDate</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:10pt;font-family:&quot;">Tuesday, August 19, 2008<span style="color:blue;">&lt;/</span><span style="color:#a31515;">OrderDate</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">RequiredDate</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:10pt;font-family:&quot;">2008-08-21T14:33:31.8125-05:00<span style="color:blue;">&lt;/</span><span style="color:#a31515;">RequiredDate</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">ShipName</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:10pt;font-family:&quot;">UPS 2<span style="color:blue;">&lt;/</span><span style="color:#a31515;">ShipName</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;/</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">Orders</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span></p>
<p><span style="font-size:10pt;font-family:&quot;color:blue;"><span> </span>&lt;/</span><span style="font-size:10pt;font-family:&quot;color:#a31515;">Customers</span><span style="font-size:10pt;font-family:&quot;color:blue;">&gt;</span></p>
<p><strong><span style="font-size:16pt;font-family:&quot;color:black;">Source Codes:</span></strong></p>
<p>Please <a title="source code link" href="http://tinyurl.com/source-code1" target="_blank">click here</a> to get the source code link.  (I hate spam as much as you do and your email id will never be given to others)</p>
<p>Feel free to comment your thoughts / questions / suggestions below.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/vinbhat.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/vinbhat.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vinbhat.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vinbhat.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vinbhat.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vinbhat.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vinbhat.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vinbhat.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vinbhat.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vinbhat.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vinbhat.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vinbhat.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vinbhat.wordpress.com&blog=4173556&post=26&subd=vinbhat&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://vinbhat.wordpress.com/2008/08/19/exporting-data-creating-xml-files-using-c/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/66630fa4bf13770740b398485e598461?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vinbhat</media:title>
		</media:content>

		<media:content url="http://vinbhat.files.wordpress.com/2008/08/export-data-xml.gif" medium="image">
			<media:title type="html">Generate xml to export data</media:title>
		</media:content>

		<media:content url="http://vinbhat.files.wordpress.com/2008/08/create-new-project.jpg?w=300" medium="image">
			<media:title type="html">Creating New Project</media:title>
		</media:content>

		<media:content url="http://vinbhat.files.wordpress.com/2008/08/data-layer-class.jpg?w=300" medium="image">
			<media:title type="html">Adding a class library to the solution</media:title>
		</media:content>

		<media:content url="http://vinbhat.files.wordpress.com/2008/08/add-schema-xsd.jpg?w=300" medium="image">
			<media:title type="html">Adding schema file to the project</media:title>
		</media:content>

		<media:content url="http://vinbhat.files.wordpress.com/2008/08/myschema.jpg?w=300" medium="image">
			<media:title type="html">Customers and Orders schema</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting Started With ASP.NET AJAX</title>
		<link>http://vinbhat.wordpress.com/2008/07/28/getting-started-with-aspnet-ajax/</link>
		<comments>http://vinbhat.wordpress.com/2008/07/28/getting-started-with-aspnet-ajax/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 22:56:58 +0000</pubDate>
		<dc:creator>vinbhat</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[asp.net ajax]]></category>

		<guid isPermaLink="false">http://vinbhat.wordpress.com/?p=21</guid>
		<description><![CDATA[A while ago, I wrote a small how-to on &#8220;Getting started with ASP.NET AJAX&#8221;. The article describes how to setup ASP.NET AJAX for the first time and then create a first application. Here&#8217;s a live demo: http://www.dataproxl.com/Demos/asp-net-ajax-enabled1.aspx and  here&#8217;s the link to the full article: http://dataproxl.googlepages.com/gettingstartedwithasp.netajax
I&#8217;ve worked on few other samples afterwards, need to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vinbhat.wordpress.com&blog=4173556&post=21&subd=vinbhat&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A while ago, I wrote a small how-to on &#8220;Getting started with ASP.NET AJAX&#8221;. The article describes how to setup ASP.NET AJAX for the first time and then create a first application. Here&#8217;s a live demo: <a href="http://www.dataproxl.com/Demos/asp-net-ajax-enabled1.aspx" target="_self">http://www.dataproxl.com/Demos/asp-net-ajax-enabled1.aspx</a> and  here&#8217;s the link to the full article: <a href="http://dataproxl.googlepages.com/gettingstartedwithasp.netajax" target="_self">http://dataproxl.googlepages.com/gettingstartedwithasp.netajax</a></p>
<p>I&#8217;ve worked on few other samples afterwards, need to find time to post them.</p>
<p>If you have any of your ASP.NET AJAX demos and/or links, please add them to the comments.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/vinbhat.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/vinbhat.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vinbhat.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vinbhat.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vinbhat.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vinbhat.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vinbhat.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vinbhat.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vinbhat.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vinbhat.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vinbhat.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vinbhat.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vinbhat.wordpress.com&blog=4173556&post=21&subd=vinbhat&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://vinbhat.wordpress.com/2008/07/28/getting-started-with-aspnet-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/66630fa4bf13770740b398485e598461?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vinbhat</media:title>
		</media:content>
	</item>
		<item>
		<title>ASP.NET 2.0: Populating a Datalist using a T-SQL Stored Procedure &amp; Datalist Custom Paging</title>
		<link>http://vinbhat.wordpress.com/2008/07/21/aspnet-20-populating-a-datalist-using-a-t-sql-stored-procedure-datalist-custom-paging/</link>
		<comments>http://vinbhat.wordpress.com/2008/07/21/aspnet-20-populating-a-datalist-using-a-t-sql-stored-procedure-datalist-custom-paging/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 00:10:12 +0000</pubDate>
		<dc:creator>vinbhat</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[datalist]]></category>

		<guid isPermaLink="false">http://vinbhat.wordpress.com/?p=8</guid>
		<description><![CDATA[Highlights:
- Dataset with 2 tables
- Custom paging on the Datalist
- Stored Procedure returns only the records needed for a page. This is useful when the table has thousands of rows
- Source code in both VB 2005 and C# 2005
Source Code Snippets: VB 2005, C# 2005, T-SQL, web.config
To see the demo, please go to: http://www.jotnow.net
VB 2005:
DataList:
&#60;asp:Literal [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vinbhat.wordpress.com&blog=4173556&post=8&subd=vinbhat&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><strong>Highlights:</strong></p>
<p>- Dataset with 2 tables<br />
- Custom paging on the Datalist<br />
- Stored Procedure returns only the records needed for a page. This is useful when the table has thousands of rows<br />
- Source code in both VB 2005 and C# 2005</p>
<p><strong>Source Code Snippets:</strong> VB 2005, C# 2005, T-SQL, web.config</p>
<p>To see the demo, please go to: <a href="http://www.jotnow.net/">http://www.jotnow.net</a></p>
<p><strong>VB 2005:</strong></p>
<p><strong>DataList:</strong></p>
<p>&lt;asp:Literal runat=&#8221;server&#8221; ID=&#8221;litMsg&#8221;&gt;&lt;/asp:Literal&gt;<br />
&lt;asp:DataList runat=&#8221;server&#8221; ID=&#8221;dlStories&#8221; EnableViewState=&#8221;false&#8221;&gt;</p>
<p>&lt;ItemTemplate&gt;</p>
<p>&lt;div class=&#8221;storyTitle&#8221;&gt;&lt;%#DataBinder.Eval(Container.DataItem, &#8220;Title&#8221;)%&gt;&lt;/div&gt;<br />
&lt;div class=&#8221;storyBy&#8221;&gt;&lt;b&gt;By: &lt;/b&gt;&lt;%#DataBinder.Eval(Container.DataItem, &#8220;SubmittedBy&#8221;)%&gt;&lt;/div&gt;<br />
&lt;div class=&#8221;storyAudience&#8221;&gt;&lt;b&gt;Category: &lt;/b&gt;&lt;%#DataBinder.Eval(Container.DataItem, &#8220;IntendedAudience&#8221;)%&gt;&lt;/div&gt;<br />
&lt;div class=&#8221;storyDate&#8221;&gt;&lt;b&gt;Date Posted: &lt;/b&gt;&lt;%#DataBinder.Eval(Container.DataItem, &#8220;DateSubmitted&#8221;)%&gt; &lt;i&gt;GMT&lt;/i&gt;   &lt;span class=&#8221;viewed&#8221;&gt;&lt;b&gt;Viewed&lt;/b&gt; &lt;%#DataBinder.Eval(Container.DataItem, &#8220;NbrOfViews&#8221;)%&gt; times&lt;/span&gt;&lt;/div&gt;<br />
&lt;div class=&#8221;storyBodyHead&#8221;&gt;&lt;b&gt;Story/Jot: &lt;/b&gt;&lt;/div&gt;<br />
&lt;div class=&#8221;storyBody&#8221;&gt;&lt;%#Replace(DataBinder.Eval(Container.DataItem, &#8220;Story&#8221;), vbCrLf, &#8220;&lt;br&gt;&#8221;)%&gt;&#8230;  &lt;a href=&#8217;&lt;%#DataBinder.Eval(Container.DataItem, &#8220;StoryId&#8221;, &#8220;full-Story.aspx?i={0}&amp;Story=&#8221;)%&gt;&lt;%#Server.UrlEncode(DataBinder.Eval(Container.DataItem, &#8220;TitleUrl&#8221;))%&gt;&#8217;&gt;&lt;b&gt;Full Story&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;</p>
<p>&lt;div class=&#8221;storySeperater&#8221;&gt; &lt;/div&gt;</p>
<p>&lt;/ItemTemplate&gt;</p>
<p>&lt;/asp:DataList&gt;</p>
<p>&lt;div class=&#8221;pageNbrs&#8221;&gt;&lt;asp:Literal runat=&#8221;server&#8221; ID=&#8221;litPageNbrs&#8221;&gt;&lt;/asp:Literal&gt;&lt;/div&gt;</p>
<p><strong>Populating the Datalist</strong></p>
<p>Imports System<br />
Imports System.Data<br />
Imports System.Data.SqlClient</p>
<p>Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load<br />
litMsg.Text = &#8220;&#8221;</p>
<p>If Not IsPostBack Then</p>
<p>Dim strCategory As String = &#8220;&#8221;<br />
Dim strSearch As String = &#8220;&#8221;<br />
Dim currentPage As Integer = 0<br />
If Not IsNothing(Request.QueryString(&#8220;category&#8221;)) Then<br />
If Request.QueryString(&#8220;category&#8221;).Trim.Length &gt; 0 Then<br />
strCategory = Server.UrlDecode(Request.QueryString(&#8220;category&#8221;).Trim)<br />
litMsg.Text = &#8220;&lt;span class=&#8217;msg&#8217;&gt;Category = &#8221; &amp; strCategory &amp; &#8220;&lt;br /&gt;&lt;/span&gt;&#8221;<br />
End If<br />
End If<br />
If Not IsNothing(Request.QueryString(&#8220;search&#8221;)) Then<br />
If Request.QueryString(&#8220;search&#8221;).Trim.Length &gt; 0 Then<br />
strSearch = Server.UrlDecode(Request.QueryString(&#8220;search&#8221;).Trim)<br />
litMsg.Text &amp;= &#8220;&lt;span class=&#8217;msg&#8217;&gt;Search Phrase = &#8221; &amp; strSearch &amp; &#8220;&lt;br /&gt;&lt;/span&gt;&#8221;<br />
End If<br />
End If<br />
If IsNumeric(Request.QueryString(&#8220;cp&#8221;)) Then<br />
currentPage = Request.QueryString(&#8220;cp&#8221;).Trim<br />
End If<br />
If litMsg.Text.Trim.Length &gt; 0 Then<br />
litMsg.Text &amp;= &#8220;&lt;br /&gt;&#8221;<br />
End If</p>
<p>Dim ds As DataSet<br />
Dim cn As SqlConnection<br />
Dim da As SqlDataAdapter</p>
<p>cn = New SqlConnection(System.Configuration.ConfigurationManager.AppSettings(&#8220;snjConnectionString&#8221;))<br />
da = New SqlDataAdapter(&#8220;usp_get_Stories&#8221;, cn)<br />
ds = New DataSet()</p>
<p>Try<br />
With da.SelectCommand<br />
.CommandType = CommandType.StoredProcedure</p>
<p>If strCategory &lt;&gt; &#8220;&#8221; AndAlso strCategory &lt;&gt; &#8220;All&#8221; Then<br />
.Parameters.Add(New SqlParameter(&#8220;@Category&#8221;, SqlDbType.VarChar, 50))<br />
.Parameters(&#8220;@Category&#8221;).Value = strCategory<br />
End If</p>
<p>If strSearch &lt;&gt; &#8220;&#8221; Then<br />
.Parameters.Add(New SqlParameter(&#8220;@Search&#8221;, SqlDbType.VarChar, 50))<br />
.Parameters(&#8220;@Search&#8221;).Value = strSearch<br />
End If</p>
<p>If currentPage &lt;&gt; 0 Then<br />
.Parameters.Add(New SqlParameter(&#8220;@CurrentPage&#8221;, SqlDbType.Int))<br />
.Parameters(&#8220;@CurrentPage&#8221;).Value = currentPage<br />
End If</p>
<p>End With</p>
<p>da.Fill(ds)<br />
If ds.Tables.Count &gt; 0 Then<br />
ds.Tables(0).TableName = &#8220;Stories&#8221;<br />
ds.Tables(1).TableName = &#8220;Stats&#8221;<br />
End If</p>
<p>If Not IsNothing(ds.Tables(&#8220;Stories&#8221;)) Then<br />
dlStories.DataSource = ds.Tables(&#8220;Stories&#8221;).DefaultView<br />
dlStories.DataBind()<br />
End If</p>
<p>If ds.Tables(&#8220;Stats&#8221;).Rows.Count &gt; 0 Then<br />
Dim dtRow As DataRow = ds.Tables(&#8220;Stats&#8221;).Rows(0)<br />
If Not IsDBNull(dtRow(&#8220;TotalJots&#8221;)) Then Session(&#8220;TotalJots&#8221;) = dtRow(&#8220;TotalJots&#8221;)<br />
If Not IsDBNull(dtRow(&#8220;TotalViews&#8221;)) Then Session(&#8220;TotalViews&#8221;) = dtRow(&#8220;TotalViews&#8221;)<br />
If Not IsDBNull(dtRow(&#8220;TotalDeleted&#8221;)) Then Session(&#8220;TotalDeleted&#8221;) = dtRow(&#8220;TotalDeleted&#8221;)<br />
If Not IsDBNull(dtRow(&#8220;TotalPages&#8221;)) Then<br />
PageList(dtRow(&#8220;TotalPages&#8221;), strCategory, strSearch, currentPage)<br />
End If<br />
End If</p>
<p>Catch ex As Exception<br />
Response.Write(&#8220;&lt;span class=&#8217;error&#8217;&gt;There&#8217;s an unexpected error. Please try again.&lt;br /&gt;&lt;/span&gt;&#8221;)</p>
<p>Finally<br />
cn.Close()<br />
da.Dispose()<br />
ds.Dispose()</p>
<p>End Try</p>
<p>End If</p>
<p>End Sub</p>
<p><strong>Custom Paging:</strong></p>
<p>Private Sub CustomPaging(ByVal pages As Integer, ByVal cat As String, ByVal srch As String, Optional ByVal currpage As Integer = 1)<br />
Dim i As Integer<br />
Dim pageBegin As Integer<br />
Dim pageEnd As Integer<br />
Dim pgNbrs As String = &#8220;Pages (&#8221; &amp; String.Format(&#8220;{0:0,0}&#8221;, pages.ToString) &amp; &#8220;):  &#8221;<br />
If currpage &lt; 1 Then currpage = 1<br />
pageBegin = currpage &#8211; 2<br />
If pageBegin &lt; 1 Then<br />
pageBegin = 1<br />
End If<br />
pageEnd = pageBegin + 4<br />
If pageEnd &gt; pages Then<br />
pageEnd = pages<br />
End If<br />
If pageEnd &#8211; pageBegin &lt; 4 Then<br />
pageBegin = pageBegin &#8211; (4 &#8211; (pageEnd &#8211; pageBegin))<br />
End If<br />
If pageBegin &lt; 1 Then<br />
pageBegin = 1<br />
End If<br />
If currpage &gt; 1 Then<br />
pgNbrs &amp;= &#8220;&lt;a href=&#8217;&#8221; &amp; &#8220;Default.aspx?category=&#8221; &amp; cat &amp; &#8220;&amp;cp=1&amp;search=&#8221; &amp; srch &amp; &#8220;&#8216; title= &#8216;First Page&#8217;&gt;&lt;&lt;&lt;/a&gt;   &#8221;<br />
pgNbrs &amp;= &#8220;&lt;a href=&#8217;&#8221; &amp; &#8220;Default.aspx?category=&#8221; &amp; cat &amp; &#8220;&amp;cp=&#8221; &amp; CStr(currpage &#8211; 1) &amp; &#8220;&amp;search=&#8221; &amp; srch &amp; &#8220;&#8216; title=&#8217;Previous Page&#8217;&gt;&lt;&lt;/a&gt;  &#8221;<br />
End If<br />
For i = pageBegin To pageEnd<br />
If i &lt;&gt; currpage Then<br />
pgNbrs &amp;= &#8220; &lt;a href=&#8217;&#8221; &amp; &#8220;Default.aspx?category=&#8221; &amp; cat &amp; &#8220;&amp;cp=&#8221; &amp; i &amp; &#8220;&amp;search=&#8221; &amp; srch &amp; &#8220;&#8216;&gt;&#8221; &amp; i &amp; &#8220;&#8221; &amp; &#8220;&lt;/a&gt; &#8221;<br />
Else<br />
pgNbrs &amp;= &#8220; &lt;span class=&#8217;selectedPage&#8217;&gt; &#8221; &amp; i &amp; &#8220; &lt;/span&gt; &#8221;<br />
End If<br />
Next<br />
If pageEnd &gt; currpage Then<br />
pgNbrs &amp;= &#8220;  &lt;a href=&#8217;&#8221; &amp; &#8220;Default.aspx?category=&#8221; &amp; cat &amp; &#8220;&amp;cp=&#8221; &amp; CStr(currpage + 1) &amp; &#8220;&amp;search=&#8221; &amp; srch &amp; &#8220;&#8216; title=&#8217;Next Page&#8217;&gt;&gt;&lt;/a&gt;   &#8221;<br />
End If<br />
If currpage &lt;&gt; pages And pages &lt;&gt; 0 Then<br />
pgNbrs &amp;= &#8220;&lt;a href=&#8217;&#8221; &amp; &#8220;Default.aspx?category=&#8221; &amp; cat &amp; &#8220;&amp;cp=&#8221; &amp; CStr(pages) &amp; &#8220;&amp;search=&#8221; &amp; srch &amp; &#8220;&#8216; title=&#8217;Last Page&#8217;&gt;&gt;&gt;&lt;/a&gt;&#8221;<br />
End If<br />
litPageNbrs.Text = pgNbrs<br />
End Sub</p>
<p><strong>C# 2005:</strong></p>
<p><strong>DataList:</strong></p>
<p>&lt;asp:Literal runat=&#8221;server&#8221; ID=&#8221;litMsg&#8221;&gt;&lt;/asp:Literal&gt;<br />
&lt;asp:DataList runat=&#8221;server&#8221; ID=&#8221;dlStories&#8221; EnableViewState=&#8221;false&#8221;&gt;</p>
<p>&lt;ItemTemplate&gt;</p>
<p>&lt;div class=&#8221;storyTitle&#8221;&gt;&lt;%#DataBinder.Eval(Container.DataItem, &#8220;Title&#8221;)%&gt;&lt;/div&gt;<br />
&lt;div class=&#8221;storyBy&#8221;&gt;&lt;b&gt;By: &lt;/b&gt;&lt;%#DataBinder.Eval(Container.DataItem, &#8220;SubmittedBy&#8221;)%&gt;&lt;/div&gt;<br />
&lt;div class=&#8221;storyAudience&#8221;&gt;&lt;b&gt;Category: &lt;/b&gt;&lt;%#DataBinder.Eval(Container.DataItem, &#8220;IntendedAudience&#8221;)%&gt;&lt;/div&gt;<br />
&lt;div class=&#8221;storyDate&#8221;&gt;&lt;b&gt;Date Posted: &lt;/b&gt;&lt;%#DataBinder.Eval(Container.DataItem, &#8220;DateSubmitted&#8221;)%&gt; &lt;i&gt;GMT&lt;/i&gt;   &lt;span class=&#8221;viewed&#8221;&gt;&lt;b&gt;Viewed&lt;/b&gt; &lt;%#DataBinder.Eval(Container.DataItem, &#8220;NbrOfViews&#8221;)%&gt; times&lt;/span&gt;&lt;/div&gt;<br />
&lt;div class=&#8221;storyBodyHead&#8221;&gt;&lt;b&gt;Story/Jot: &lt;/b&gt;&lt;/div&gt;<br />
&lt;div class=&#8221;storyBody&#8221;&gt;&lt;%#DataBinder.Eval(Container.DataItem, &#8220;Story&#8221;)%&gt;&#8230;  &lt;a href=&#8217;full-story.aspx?storyId=&lt;%#DataBinder.Eval(Container.DataItem, &#8220;StoryId&#8221;)%&gt;&#8217;&gt;&lt;b&gt;Full Story&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;</p>
<p>&lt;div class=&#8221;storySeperater&#8221;&gt; &lt;/div&gt;</p>
<p>&lt;/ItemTemplate&gt;</p>
<p>&lt;/asp:DataList&gt;</p>
<p>&lt;div class=&#8221;pageNbrs&#8221;&gt;&lt;asp:Literal runat=&#8221;server&#8221; ID=&#8221;litPageNbrs&#8221;&gt;&lt;/asp:Literal&gt;&lt;/div&gt;</p>
<p><strong>Populating the Datalist</strong></p>
<p>using System;<br />
using System.Data;<br />
using System.Configuration;<br />
using System.Collections;<br />
using System.Web;<br />
using System.Web.Security;<br />
using System.Web.UI;<br />
using System.Web.UI.WebControls;<br />
using System.Web.UI.WebControls.WebParts;<br />
using System.Web.UI.HtmlControls;</p>
<p>using System.Data.SqlClient;</p>
<p>public partial class _Default : System.Web.UI.Page<br />
{<br />
protected void Page_Load(object sender, EventArgs e)<br />
{<br />
litMsg.Text = &#8220;&#8221;;</p>
<p>if (!IsPostBack)<br />
{<br />
string strCategory = &#8220;&#8221;;<br />
string strSearch = &#8220;&#8221;;<br />
int currentPage = 0;<br />
if (Request.QueryString["category"] != null)<br />
{<br />
if (Request.QueryString["category"].Trim().Length &gt; 0)<br />
{<br />
strCategory = Server.UrlDecode(Request.QueryString["category"].Trim());<br />
litMsg.Text = &#8220;&lt;span class=&#8217;msg&#8217;&gt;Category = &#8221; + strCategory + &#8220;&lt;br /&gt;&lt;/span&gt;&#8221;;<br />
}<br />
}<br />
if (Request.QueryString["search"] != null)<br />
{<br />
if (Request.QueryString["search"].Trim().Length &gt; 0)<br />
{<br />
strSearch = Server.UrlDecode(Request.QueryString["search"].Trim());<br />
litMsg.Text += &#8220;&lt;span class=&#8217;msg&#8217;&gt;Search Phrase = &#8221; + strSearch + &#8220;&lt;br /&gt;&lt;/span&gt;&#8221;;<br />
}<br />
}<br />
int result;<br />
if (int.TryParse(Request.QueryString["cp"], out result))<br />
{<br />
currentPage = int.Parse(Request.QueryString["cp"].Trim());<br />
}<br />
if (litMsg.Text.Trim().Length &gt; 0)<br />
{<br />
litMsg.Text += &#8220;&lt;br /&gt;&#8221;;<br />
}</p>
<p>DataSet ds = null;<br />
SqlConnection cn = null;<br />
SqlDataAdapter da = null;</p>
<p>cn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["snjConnectionString"]);<br />
da = new SqlDataAdapter(&#8220;usp_get_Stories&#8221;, cn);<br />
ds = new DataSet();</p>
<p>try<br />
{<br />
da.SelectCommand.CommandType = CommandType.StoredProcedure;</p>
<p>if (strCategory != &#8220;&#8221; &amp;&amp; strCategory != &#8220;All&#8221;)<br />
{<br />
da.SelectCommand.Parameters.Add(new SqlParameter(&#8220;@Category&#8221;, SqlDbType.VarChar, 50));<br />
da.SelectCommand.Parameters["@Category"].Value = strCategory;<br />
}</p>
<p>if (strSearch != &#8220;&#8221;)<br />
{<br />
da.SelectCommand.Parameters.Add(new SqlParameter(&#8220;@Search&#8221;, SqlDbType.VarChar, 50));<br />
da.SelectCommand.Parameters["@Search"].Value = strSearch;<br />
}</p>
<p>if (currentPage != 0)<br />
{<br />
da.SelectCommand.Parameters.Add(new SqlParameter(&#8220;@CurrentPage&#8221;, SqlDbType.Int));<br />
da.SelectCommand.Parameters["@CurrentPage"].Value = currentPage;<br />
}</p>
<p>da.Fill(ds);<br />
if (ds.Tables.Count &gt; 0)<br />
{<br />
ds.Tables[0].TableName = &#8220;Stories&#8221;;<br />
ds.Tables[1].TableName = &#8220;Stats&#8221;;<br />
}</p>
<p>if (ds.Tables["Stories"] != null)<br />
{<br />
dlStories.DataSource = ds.Tables["Stories"].DefaultView;<br />
dlStories.DataBind();<br />
}</p>
<p>if (ds.Tables["Stats"].Rows.Count &gt; 0)<br />
{<br />
DataRow dtRow = ds.Tables["Stats"].Rows[0];<br />
if (!(System.Convert.IsDBNull(dtRow["TotalJots"])))<br />
{<br />
Session["TotalJots"] = dtRow["TotalJots"];<br />
}<br />
if (!(System.Convert.IsDBNull(dtRow["TotalViews"])))<br />
{<br />
Session["TotalViews"] = dtRow["TotalViews"];<br />
}<br />
if (!(System.Convert.IsDBNull(dtRow["TotalDeleted"])))<br />
{<br />
Session["TotalDeleted"] = dtRow["TotalDeleted"];<br />
}<br />
if (!(System.Convert.IsDBNull(dtRow["TotalPages"])))<br />
{<br />
int totPages;<br />
//totPages = int.Parse(dtRow["TotalPages"].ToString);<br />
totPages = (int)dtRow["TotalPages"];<br />
CustomPaging(totPages, strCategory, strSearch, currentPage);<br />
}<br />
}</p>
<p>}<br />
catch<br />
{<br />
Response.Write(&#8220;&lt;span class=&#8217;error&#8217;&gt;There&#8217;s an unexpected error. Please try again.&lt;br /&gt;&lt;/span&gt;&#8221;);</p>
<p>}<br />
finally<br />
{<br />
cn.Close();<br />
da.Dispose();<br />
ds.Dispose();</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p><strong>Custom Paging:</strong></p>
<p>private void CustomPaging(int pages, string cat, string srch)<br />
{<br />
CustomPaging(pages, cat, srch, 1);<br />
}</p>
<p>private void CustomPaging(int pages, string cat, string srch, int currpage)<br />
{<br />
int i = 0;<br />
int pageBegin = 0;<br />
int pageEnd = 0;<br />
string pgNbrs = &#8220;Pages (&#8221; + string.Format(&#8220;{0:0,0}&#8221;, pages.ToString()) + &#8220;):  &#8221;;<br />
if (currpage &lt; 1)<br />
{<br />
currpage = 1;<br />
}<br />
pageBegin = currpage &#8211; 2;<br />
if (pageBegin &lt; 1)<br />
{<br />
pageBegin = 1;<br />
}<br />
pageEnd = pageBegin + 4;<br />
if (pageEnd &gt; pages)<br />
{<br />
pageEnd = pages;<br />
}<br />
if (pageEnd &#8211; pageBegin &lt; 4)<br />
{<br />
pageBegin = pageBegin &#8211; (4 &#8211; (pageEnd &#8211; pageBegin));<br />
}<br />
if (pageBegin &lt; 1)<br />
{<br />
pageBegin = 1;<br />
}<br />
if (currpage &gt; 1)<br />
{<br />
pgNbrs += &#8220;&lt;a href=&#8217;&#8221; + &#8220;Default.aspx?category=&#8221; + cat + &#8220;&amp;cp=1&amp;search=&#8221; + srch + &#8220;&#8216; title= &#8216;First Page&#8217;&gt;&lt;&lt;&lt;/a&gt;   &#8221;;<br />
pgNbrs += &#8220;&lt;a href=&#8217;&#8221; + &#8220;Default.aspx?category=&#8221; + cat + &#8220;&amp;cp=&#8221; + System.Convert.ToString(currpage &#8211; 1) + &#8220;&amp;search=&#8221; + srch + &#8220;&#8216; title=&#8217;Previous Page&#8217;&gt;&lt;&lt;/a&gt;  &#8221;;<br />
}<br />
for (i = pageBegin; i &lt;= pageEnd; i++)<br />
{<br />
if (i != currpage)<br />
{<br />
pgNbrs += &#8220; &lt;a href=&#8217;&#8221; + &#8220;Default.aspx?category=&#8221; + cat + &#8220;&amp;cp=&#8221; + i + &#8220;&amp;search=&#8221; + srch + &#8220;&#8216;&gt;&#8221; + i + &#8220;&#8221; + &#8220;&lt;/a&gt; &#8221;;<br />
}<br />
else<br />
{<br />
pgNbrs += &#8220; &lt;span class=&#8217;selectedPage&#8217;&gt; &#8221; + i + &#8220; &lt;/span&gt; &#8221;;<br />
}<br />
}<br />
if (pageEnd &gt; currpage)<br />
{<br />
pgNbrs += &#8220;  &lt;a href=&#8217;&#8221; + &#8220;Default.aspx?category=&#8221; + cat + &#8220;&amp;cp=&#8221; + System.Convert.ToString(currpage + 1) + &#8220;&amp;search=&#8221; + srch + &#8220;&#8216; title=&#8217;Next Page&#8217;&gt;&gt;&lt;/a&gt;   &#8221;;<br />
}<br />
if (currpage != pages &amp; pages != 0)<br />
{<br />
pgNbrs += &#8220;&lt;a href=&#8217;&#8221; + &#8220;Default.aspx?category=&#8221; + cat + &#8220;&amp;cp=&#8221; + System.Convert.ToString(pages) + &#8220;&amp;search=&#8221; + srch + &#8220;&#8216; title=&#8217;Last Page&#8217;&gt;&gt;&gt;&lt;/a&gt;&#8221;;<br />
}<br />
litPageNbrs.Text = pgNbrs;<br />
}</p>
<p>}</p>
<p><strong>Stored Procedure:</strong></p>
<p>CREATE PROCEDURE dbo.usp_get_Stories<br />
@Category varchar(50) = NULL,<br />
@Search varchar(50) = NULL,<br />
@CurrentPage int = NULL<br />
AS<br />
BEGIN</p>
<p>SET NOCOUNT ON;</p>
<p>declare @pageSize int<br />
set @pageSize = 15</p>
<p>declare @totalJots numeric(18,0), @totalViews numeric(18,0), @totalDeleted numeric(18,0)<br />
declare @avJots int, @totalPages int</p>
<p>/*========================================<br />
&#8220;Stories&#8221;<br />
=========================================*/<br />
if @CurrentPage is null<br />
set @CurrentPage = 1</p>
<p>select Identity(int,1,1) as thisId,<br />
cast(StoryId as int) as StoryId,  &#8211;&#8217;cos can&#8217;t insert another identity<br />
Title,<br />
TitleUrl = Replace(Replace(Replace(Replace(Replace(Title, &#8216; &#8216;, &#8216;-&#8217;), &#8216;&amp;&#8217;, &#8221;), &#8216;,&#8217;, &#8221;), &#8221;&#8221;, &#8221;), &#8216;?&#8217;, &#8221;),<br />
SubmittedBy,<br />
IntendedAudience,<br />
Keywords,<br />
Story = Replace(Replace(cast(Story as varchar(200)), &#8221;, &#8221;), &#8221;, &#8221;),<br />
WebsiteName,<br />
DateSubmitted = convert(varchar, DateSubmitted, 100),<br />
NbrOfViews = isnull(NbrOfViews, 0)<br />
into #stories<br />
from Stories<br />
where Cast(IsApprove as int) = 1 and isnull(IsDelete, 0) = 0<br />
order by StoryId desc</p>
<p>if @Category is null and @Search is null<br />
BEGIN<br />
select @avJots = count(*)  &#8211;@avJots = available jots for this search<br />
from #stories</p>
<p>select top 15 *    &#8211;instead of using exec, 15 is hardcoded here<br />
from #stories<br />
where thisId &gt; (@CurrentPage &#8211; 1) * @pageSize<br />
order by thisId<br />
END<br />
else if @Category is not null and @Search is null<br />
BEGIN</p>
<p>select @avJots = count(*)<br />
from #stories<br />
where IntendedAudience like &#8216;%&#8217; + @Category + &#8216;%&#8217;</p>
<p>select top 15 *<br />
from #stories<br />
where thisId &gt; (@CurrentPage &#8211; 1) * @pageSize<br />
and IntendedAudience like &#8216;%&#8217; + @Category + &#8216;%&#8217;<br />
order by thisId<br />
END<br />
else if @Category is null and @Search is not null<br />
BEGIN</p>
<p>select @avJots = count(*)<br />
from #stories<br />
where (Title like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or SubmittedBy like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or IntendedAudience like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or Keywords like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or Story  like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or WebsiteName  like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
)</p>
<p>select top 15 *<br />
from #stories<br />
where thisId &gt; (@CurrentPage &#8211; 1) * @pageSize<br />
and (Title like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or SubmittedBy like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or IntendedAudience like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or Keywords like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or Story  like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or WebsiteName  like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
)<br />
order by thisId<br />
END<br />
else if @Category is not null and @Search is not null<br />
BEGIN</p>
<p>select @avJots = count(*)<br />
from #stories<br />
where IntendedAudience like &#8216;%&#8217; + @Category + &#8216;%&#8217;<br />
and (Title like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or SubmittedBy like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or IntendedAudience like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or Keywords like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or Story  like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or WebsiteName  like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
)</p>
<p>select top 15 *<br />
from #stories<br />
where thisId &gt; (@CurrentPage &#8211; 1) * @pageSize<br />
and IntendedAudience like &#8216;%&#8217; + @Category + &#8216;%&#8217;<br />
and (Title like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or SubmittedBy like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or IntendedAudience like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or Keywords like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or Story  like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
or WebsiteName  like &#8216;%&#8217; + @Search + &#8216;%&#8217;<br />
)<br />
order by thisId<br />
END</p>
<p>/*========================================<br />
&#8220;Stats&#8221;<br />
==========================================*/<br />
select @totalJots = count(*),<br />
@totalViews = sum(isnull(NbrOfViews, 0))<br />
from Stories<br />
where Cast(IsApprove as int) = 1 and isnull(IsDelete, 0) = 0</p>
<p>select @totalDeleted = count(*)<br />
from Stories<br />
where isnull(IsDelete, 0) = 1</p>
<p>if @avJots % @pageSize = 0  &#8211;@avJots = available jots from above<br />
set @totalPages = @avJots / @pageSize<br />
else<br />
set @totalPages = (@avJots / @pageSize) + 1</p>
<p>select TotalJots = @totalJots,<br />
TotalViews = @totalViews,<br />
TotalDeleted = @totalDeleted,<br />
TotalPages = @totalPages</p>
<p>SET NOCOUNT OFF;</p>
<p>END</p>
<p><strong>web.config:</strong></p>
<p>&lt;?xml version=&#8221;1.0&#8243;?&gt;<br />
&lt;configuration&gt;<br />
&lt;appSettings&gt;<br />
&lt;add key=&#8221;snjConnectionString&#8221; value=&#8221;Data Source=(server name);Initial Catalog=(database name);Integrated Security=True;&#8221;/&gt;<br />
&lt;/appSettings&gt;<br />
&lt;system.web&gt;<br />
&#8230;<br />
&#8230;<br />
&lt;/system.web&gt;<br />
&#8230;<br />
&#8230;<br />
&lt;/configuration&gt;</p>
<p>To see the demo, please go to: <a href="http://www.jotnow.info/" target="_blank">http://www.jotnow.net</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/vinbhat.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/vinbhat.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vinbhat.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vinbhat.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vinbhat.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vinbhat.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vinbhat.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vinbhat.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vinbhat.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vinbhat.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vinbhat.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vinbhat.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vinbhat.wordpress.com&blog=4173556&post=8&subd=vinbhat&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://vinbhat.wordpress.com/2008/07/21/aspnet-20-populating-a-datalist-using-a-t-sql-stored-procedure-datalist-custom-paging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/66630fa4bf13770740b398485e598461?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vinbhat</media:title>
		</media:content>
	</item>
	</channel>
</rss>