<?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-21595342</id><updated>2011-06-01T21:50:11.344-07:00</updated><title type='text'>I Need A Dip</title><subtitle type='html'>I noticed everyone else had a blog, so I thought maybe I could be just a hip as everyone else if I got one.

Plus it's a nice centralized place for me to keep some code snippets.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ineedadip.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21595342/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ineedadip.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Brian</name><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>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21595342.post-114442773238412894</id><published>2006-04-07T09:34:00.000-07:00</published><updated>2006-04-07T10:00:37.023-07:00</updated><title type='text'>JavaScript StringBuilder</title><content type='html'>The big web project that I have been working on lately utilizes a ton AJAX.  Specificaly &lt;a href="http://www.ajaxpro.info/"&gt;AjaxPro.NET&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
As a result I have been doing a ton more JavaScript developement and client side rendering of tables and what not (string concatenation).
&lt;br /&gt;
I noticed that creating HTML on the client wasn't as fast as I would like when constructing large tables to be displayed so I did a couple of tests.
&lt;br /&gt;&lt;br /&gt;
First I just looped through 5,000 times creating a very large string like:
&lt;div class='code'&gt;
&lt;font color='blue'&gt;for&lt;/font&gt;&lt;font color='black'&gt;(x&lt;/font&gt;&lt;font color='blue'&gt;=&lt;/font&gt;&lt;font color='maroon'&gt;0&lt;/font&gt;&lt;font color='blue'&gt;;&lt;/font&gt;&lt;font color='black'&gt;x&amp;lt;&lt;/font&gt;&lt;font color='maroon'&gt;5000&lt;/font&gt;&lt;font color='blue'&gt;;&lt;/font&gt;&lt;font color='black'&gt;x++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;html&amp;nbsp;+&lt;/font&gt;&lt;font color='blue'&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color='#808080'&gt;'Lorem&amp;nbsp;ipsum&amp;nbsp;dolor&amp;nbsp;sit&amp;nbsp;amet,&amp;nbsp;consectetuer&amp;nbsp;bla&amp;nbsp;bla&amp;nbsp;&amp;lt;br&amp;nbsp;/&amp;gt;'&lt;/font&gt;&lt;font color='blue'&gt;;&lt;br /&gt;
var&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;s&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;=&amp;nbsp;document&lt;/font&gt;&lt;font color='black'&gt;.getElementById(&lt;/font&gt;&lt;font color='#808080'&gt;"results"&lt;/font&gt;&lt;font color='black'&gt;)&lt;/font&gt;&lt;font color='blue'&gt;;&lt;br /&gt;
&lt;/font&gt;&lt;font color='black'&gt;s.innerHTML&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;html&lt;/font&gt;&lt;font color='blue'&gt;;&lt;/font&gt;
 &lt;/div&gt;

This took about &lt;b&gt;2.8&lt;/b&gt; seconds in IE. &lt;i&gt;(on average)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Next I created the following string builder class:

&lt;div class='code'&gt;
&lt;font color='blue'&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;StringBuilder(&lt;/font&gt;&lt;font color='blue'&gt;value&lt;/font&gt;&lt;font color='black'&gt;){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;this&lt;/font&gt;&lt;font color='black'&gt;.strings&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;=&amp;nbsp;new&amp;nbsp;Array&lt;/font&gt;&lt;font color='black'&gt;(&lt;/font&gt;&lt;font color='#808080'&gt;""&lt;/font&gt;&lt;font color='black'&gt;)&lt;/font&gt;&lt;font color='blue'&gt;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this&lt;/font&gt;&lt;font color='black'&gt;.append(&lt;/font&gt;&lt;font color='blue'&gt;value&lt;/font&gt;&lt;font color='black'&gt;)&lt;/font&gt;&lt;font color='blue'&gt;;&lt;br /&gt;
&lt;/font&gt;&lt;font color='black'&gt;}&lt;br /&gt;
StringBuilder.prototype.append&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;=&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;(&lt;/font&gt;&lt;font color='blue'&gt;value&lt;/font&gt;&lt;font color='black'&gt;){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;(&lt;/font&gt;&lt;font color='blue'&gt;value&lt;/font&gt;&lt;font color='black'&gt;)&lt;/font&gt;&lt;font color='blue'&gt;this&lt;/font&gt;&lt;font color='black'&gt;.strings.push(&lt;/font&gt;&lt;font color='blue'&gt;value&lt;/font&gt;&lt;font color='black'&gt;)&lt;/font&gt;&lt;font color='blue'&gt;;&lt;br /&gt;
&lt;/font&gt;&lt;font color='black'&gt;}&lt;br /&gt;
StringBuilder.prototype.clear&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;=&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;(){&lt;/font&gt;&lt;font color='blue'&gt;this&lt;/font&gt;&lt;font color='black'&gt;.strings.length&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color='maroon'&gt;1&lt;/font&gt;&lt;font color='blue'&gt;;&lt;/font&gt;&lt;font color='black'&gt;}&lt;br /&gt;
StringBuilder.prototype.toString&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;=&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;(){&lt;/font&gt;&lt;font color='blue'&gt;return&amp;nbsp;this&lt;/font&gt;&lt;font color='black'&gt;.strings.join(&lt;/font&gt;&lt;font color='#808080'&gt;""&lt;/font&gt;&lt;font color='black'&gt;)&lt;/font&gt;&lt;font color='blue'&gt;;&lt;/font&gt;&lt;font color='black'&gt;}&lt;/font&gt;
 &lt;/div&gt;

I ran the test again using my new class like:
&lt;div class='code'&gt;
&lt;font color='blue'&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;html&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;=&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;StringBuilder(&lt;/font&gt;&lt;font color='#808080'&gt;""&lt;/font&gt;&lt;font color='black'&gt;)&lt;/font&gt;&lt;font color='blue'&gt;;&lt;br /&gt;
for&lt;/font&gt;&lt;font color='black'&gt;(x&lt;/font&gt;&lt;font color='blue'&gt;=&lt;/font&gt;&lt;font color='maroon'&gt;0&lt;/font&gt;&lt;font color='blue'&gt;;&lt;/font&gt;&lt;font color='black'&gt;x&amp;lt;&lt;/font&gt;&lt;font color='maroon'&gt;5000&lt;/font&gt;&lt;font color='blue'&gt;;&lt;/font&gt;&lt;font color='black'&gt;x++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;html.append(&lt;/font&gt;&lt;font color='#808080'&gt;'Lorem&amp;nbsp;ipsum&amp;nbsp;dolor&amp;nbsp;sit&amp;nbsp;amet,&amp;nbsp;consectetuer&amp;nbsp;bla&amp;nbsp;bla&amp;nbsp;&amp;lt;br&amp;nbsp;/&amp;gt;'&lt;/font&gt;&lt;font color='black'&gt;)&lt;/font&gt;&lt;font color='blue'&gt;;&lt;br /&gt;
var&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;s&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;=&amp;nbsp;document&lt;/font&gt;&lt;font color='black'&gt;.getElementById(&lt;/font&gt;&lt;font color='#808080'&gt;"results"&lt;/font&gt;&lt;font color='black'&gt;)&lt;/font&gt;&lt;font color='blue'&gt;;&lt;br /&gt;
&lt;/font&gt;&lt;font color='black'&gt;s.innerHTML&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;html.toString()&lt;/font&gt;&lt;font color='blue'&gt;;&lt;/font&gt;
 &lt;/div&gt;
The average results using the string builder was about &lt;b&gt;62 milliseconds&lt;/b&gt;.
&lt;br /&gt; While the results weren't as drastic in FireFox, the StringBuilder class was 2 to 3 times faster.
&lt;br /&gt;
&lt;br /&gt;Give it a try...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21595342-114442773238412894?l=ineedadip.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ineedadip.blogspot.com/feeds/114442773238412894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21595342&amp;postID=114442773238412894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21595342/posts/default/114442773238412894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21595342/posts/default/114442773238412894'/><link rel='alternate' type='text/html' href='http://ineedadip.blogspot.com/2006/04/javascript-stringbuilder.html' title='JavaScript StringBuilder'/><author><name>Brian</name><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-21595342.post-113875051683729209</id><published>2006-01-31T15:22:00.000-08:00</published><updated>2006-01-31T16:05:44.553-08:00</updated><title type='text'>Sorting Generics with IComparer&lt;T&gt;</title><content type='html'>I'm a huge fan of &lt;a href="http://msdn2.microsoft.com/en-us/library/0sbxh9x2(en-us,VS.80).aspx"&gt;Generics&lt;/a&gt;.&lt;br&gt;&lt;br&gt;

I've replaced all of my code generated custom colletion classes with List&amp;lt;T&amp;gt;.  But along with my simple implementation of CollectionBase I built in some custom sorting for my objects.&lt;br&gt;&lt;br&gt;

I know the correct way would be to implement IComparer with all my objects and sort that way, but the truth is I very rarely sort anything (only when displaying data t the user).  I like just running my &lt;a href="http://www.codesmithtools.com/"&gt;CodeSmith&lt;/a&gt; template against all 25 of my tables to generate some nice objects that take care of all the C.R.U.D. functions, along with the stored procs to make them work.&lt;br&gt;&lt;br&gt;

Meanwhile, back at the ranch, I need to sort my List&amp;lt;T&amp;gt;'s by a particular property value.  Here was my solution:

&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;div class="csharpcode" style="height: 620px;"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;enum&lt;/span&gt; GenericComparerSortDirection { Asc, Desc } &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; GenericComparer&amp;lt;T&amp;gt; : IComparer&amp;lt;T&amp;gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;{    &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; propertyName; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; GenericComparerSortDirection theDirection; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; GenericComparer(&lt;span class="kwrd"&gt;string&lt;/span&gt; propertyName, GenericComparerSortDirection eSortDirection) &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    { &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="kwrd"&gt;this&lt;/span&gt;.propertyName = propertyName; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        &lt;span class="kwrd"&gt;this&lt;/span&gt;.theDirection = eSortDirection; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    } &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; Compare(T x, T y) &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    { &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        &lt;span class="rem"&gt;// gets the value of the x property &lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        PropertyInfo property = x.GetType().GetProperty(propertyName); &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        &lt;span class="kwrd"&gt;object&lt;/span&gt; valueOfX = property.GetValue(x, &lt;span class="kwrd"&gt;null&lt;/span&gt;); &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        &lt;span class="rem"&gt;// gets the value of the y property &lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;        property = y.GetType().GetProperty(propertyName); &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;        &lt;span class="kwrd"&gt;object&lt;/span&gt; valueOfY = property.GetValue(y, &lt;span class="kwrd"&gt;null&lt;/span&gt;); &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;        &lt;span class="rem"&gt;// now make the comparsion &lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.theDirection == GenericComparerSortDirection.Asc) &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; ((IComparable)valueOfX).CompareTo(valueOfY); &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; ((IComparable)valueOfY).CompareTo(valueOfX); &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;

Now you can sort a generic list of custom objects like this:&lt;br&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;div class="csharpcode" style="height: 60px;"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;List&amp;lt;MyClass&amp;gt; lstSorted = getABunchOfObjects(); &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;lstSorted.Sort(&lt;span class="kwrd"&gt;new&lt;/span&gt; GenericComparer&amp;lt;MyClass&amp;gt;(&lt;span class="str"&gt;"PropertyName"&lt;/span&gt;, GenericComparerSortDirection.Asc));&lt;/pre&gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;

I understand that this isn't the most efficient way of sorting (using reflection) but like I said, I don't use this method often, and it works perfectly for my situation.&lt;br&gt;&lt;br&gt;

NOTE: Notice line 17 and 21 use GetType() rather than typeof(T) in case the properties aren't provided by T itself, but by a class derived from T.&lt;br&gt;
Thanks to a suggestion from &lt;a href="http://www.msmvps.com/jon.skeet"&gt;Jon Skeet&lt;/a&gt;&lt;br&gt;&lt;br&gt;

This implementation was inspired by my problem and the following post: http://www.dotnetjunkies.com/Tutorial/5091F698-EF8B-436B-A345-AFBEF18CE229.dcik&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21595342-113875051683729209?l=ineedadip.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ineedadip.blogspot.com/feeds/113875051683729209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21595342&amp;postID=113875051683729209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21595342/posts/default/113875051683729209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21595342/posts/default/113875051683729209'/><link rel='alternate' type='text/html' href='http://ineedadip.blogspot.com/2006/01/sorting-generics-with-icomparer.html' title='Sorting Generics with IComparer&amp;lt;T&amp;gt;'/><author><name>Brian</name><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-21595342.post-113855298262997281</id><published>2006-01-29T08:42:00.000-08:00</published><updated>2006-01-29T08:57:30.810-08:00</updated><title type='text'>Singleton pattern on the web</title><content type='html'>I would love some feed back so please don't hold back.
&lt;br&gt;&lt;br&gt;

I have a webservice that is responsible for formatting tons of information that is then queried by other applications (agents) that utilize it (the info packets).&lt;br&gt;&lt;br&gt;

All this "formatting" and logic I am talking about needs to be done in a centralized place and accessed by the agents.  That is why we chose to go with a web service.  
This formatting and logic also needs to be done and held in memory so the agents don't have to wait for it.  So we decided to implement a sort of &lt;a href="http://www.yoda.arachsys.com/csharp/singleton.html"&gt;singleton pattern&lt;/a&gt;.  What do you guys think?&lt;br&gt;&lt;br&gt;


&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; PacketManager &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{ &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;object&lt;/span&gt; lockObject = &lt;span class="kwrd"&gt;new&lt;/span&gt; Object(); &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; CACHE_MANAGER = &lt;span class="str"&gt;"Mngr:PacketManager"&lt;/span&gt;; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; List&amp;lt;InfoPacket&amp;gt; _preparedPackets; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; PacketManager() { initFunction(); } &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; InfoPacket GetInfoPacket() { &lt;span class="kwrd"&gt;return&lt;/span&gt; Instance.getInfoPacket(); } &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; InfoPacket getInfoPacket() { ......some code ..... &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._preparedPackets[0]; } &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; PacketManager Instance &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    { &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        get {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            &lt;span class="kwrd"&gt;lock&lt;/span&gt;(lockObject){&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;            &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;                PacketManager oManager;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;                &lt;span class="kwrd"&gt;object&lt;/span&gt; o = System.Web.HttpContext.Current.Application.Get(CACHE_MANAGER);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt;(o==&lt;span class="kwrd"&gt;null&lt;/span&gt;){&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;                    oManager = &lt;span class="kwrd"&gt;new&lt;/span&gt; PacketManager();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;                    System.Web.HttpContext.Current.Application.Add(CACHE_MANAGER,oManager);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;                } &lt;span class="kwrd"&gt;else&lt;/span&gt; oManager = (PacketManager)o;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;                &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; oManager;                &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;            }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;                &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;} &lt;/pre&gt;
&lt;/div&gt;
&lt;br&gt;&lt;br&gt;
Here is more information on the Singleton Pattern: &lt;a href="http://www.yoda.arachsys.com/csharp/singleton.html"&gt;http://www.yoda.arachsys.com/csharp/singleton.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21595342-113855298262997281?l=ineedadip.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ineedadip.blogspot.com/feeds/113855298262997281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21595342&amp;postID=113855298262997281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21595342/posts/default/113855298262997281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21595342/posts/default/113855298262997281'/><link rel='alternate' type='text/html' href='http://ineedadip.blogspot.com/2006/01/singleton-pattern-on-web.html' title='Singleton pattern on the web'/><author><name>Brian</name><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-21595342.post-113838793335146179</id><published>2006-01-27T10:51:00.000-08:00</published><updated>2006-01-31T15:52:33.156-08:00</updated><title type='text'>sp_xml_preparedocument - Date problem</title><content type='html'>I'm no word-smith, so here was my problem:&lt;br&gt;&lt;br&gt;

My dataset looked like the following when it's serialized.&lt;br&gt;

&lt;div class="csharpcode"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;NewDataSet&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xs:schema&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="NewDataSet"&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;=""&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="attr"&gt;xmlns:xs&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.w3.org/2001/XMLSchema"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="attr"&gt;xmlns:msdata&lt;/span&gt;&lt;span class="kwrd"&gt;="urn:schemas-microsoft-com:xml-msdata"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xs:element&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="NewDataSet"&lt;/span&gt; &lt;span class="attr"&gt;msdata:IsDataSet&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="attr"&gt;msdata:UseCurrentLocale&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xs:complexType&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xs:choice&lt;/span&gt; &lt;span class="attr"&gt;minOccurs&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt; &lt;span class="attr"&gt;maxOccurs&lt;/span&gt;&lt;span class="kwrd"&gt;="unbounded"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xs:element&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="List_101"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xs:complexType&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xs:attribute&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="InvoiceID"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="xs:int"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xs:attribute&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="Email"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="xs:string"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xs:attribute&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="DomainID"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="xs:int"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xs:attribute&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="SourceID"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="xs:int"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xs:attribute&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="TypeEnum"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="xs:int"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xs:attribute&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="ImportID"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="xs:int"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xs:attribute&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="DateStamp"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="xs:dateTime"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xs:complexType&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xs:element&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xs:choice&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xs:complexType&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xs:element&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xs:schema&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;List_101&lt;/span&gt; &lt;span class="attr"&gt;InvoiceID&lt;/span&gt;&lt;span class="kwrd"&gt;="55"&lt;/span&gt; &lt;span class="attr"&gt;Email&lt;/span&gt;&lt;span class="kwrd"&gt;="joeshmoe@joe.com"&lt;/span&gt; &lt;span class="attr"&gt;DomainID&lt;/span&gt;&lt;span class="kwrd"&gt;="2421"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;&lt;span class="attr"&gt;SourceID&lt;/span&gt;&lt;span class="kwrd"&gt;="12"&lt;/span&gt; &lt;span class="attr"&gt;TypeEnum&lt;/span&gt;&lt;span class="kwrd"&gt;="2"&lt;/span&gt; &lt;span class="attr"&gt;ImportID&lt;/span&gt;&lt;span class="kwrd"&gt;="20"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;&lt;span class="attr"&gt;DateStamp&lt;/span&gt;&lt;span class="kwrd"&gt;="2005-09-18T17:39:00-07:00"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;NewDataSet&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;br&gt;&lt;br&gt;
My stored procedure looked like the following:&lt;br&gt;

&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;div class="csharpcode" style="height: 300px;"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;Proc&lt;/span&gt; xml_List_101&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;@listdata nText&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;Declare&lt;/span&gt; @hDoc &lt;span class="kwrd"&gt;int&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;exec&lt;/span&gt; sp_xml_preparedocument @hDoc &lt;span class="kwrd"&gt;OUTPUT&lt;/span&gt;, @listdata&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;Insert&lt;/span&gt; &lt;span class="kwrd"&gt;Into&lt;/span&gt; List_101&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;Select&lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt; [InvoiceID], [Email], [DomainID], [SourceID], [TypeEnum], [ImportID], [DateStamp]&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="kwrd"&gt;From&lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;OPENXML&lt;/span&gt;(@hDoc, &lt;span class="str"&gt;'/NewDataSet/List_101'&lt;/span&gt;)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;WITH&lt;/span&gt; (&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;[InvoiceID] &lt;span class="kwrd"&gt;Integer&lt;/span&gt;,[Email] &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(150),[DomainID] &lt;span class="kwrd"&gt;Integer&lt;/span&gt;,[SourceID] &lt;span class="kwrd"&gt;Integer&lt;/span&gt;,[TypeEnum] &lt;span class="kwrd"&gt;Integer&lt;/span&gt;,[ImportID] &lt;span class="kwrd"&gt;Integer&lt;/span&gt;,[DateStamp] &lt;span class="kwrd"&gt;DateTime&lt;/span&gt;)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;span class="kwrd"&gt;Exec&lt;/span&gt; sp_xml_removedocument @hDoc&lt;/pre&gt;
&lt;/div&gt;
&lt;br&gt;
First off, my dataset was a lot larger then the one I am showing you.  There were many more &lt;List_101&gt; "rows".
&lt;br&gt;&lt;br&gt;
I was trying to insert the XML data into a table called List_101, and that 
table has a 'DateStamp' column that is a datetime type.
I kept getting the "Syntax error converting datetime from character string." 
because of the DateTime format from DataSet.WriteXML(). (because of the -07:00 offset)
&lt;br&gt;&lt;br&gt;
So I ended up using the CAST(left(DateStamp,10) AS datetime) so it was in 
the correct format and changed the WITH to DateStamp varchar(10).
The sp_xml_preparedocument doesn't blow up anymore and the data gets 
successfuly inserted into List_101 with the proper DateStamp (which is a 
datetime in the table) because it converts the varchar(10) on its own.
&lt;br&gt;&lt;br&gt;
Final working stored proc:&lt;br&gt;

&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;div class="csharpcode" style="height: 300px;"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;Proc&lt;/span&gt; xml_List_101&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;@listdata nText&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;Declare&lt;/span&gt; @hDoc &lt;span class="kwrd"&gt;int&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;exec&lt;/span&gt; sp_xml_preparedocument @hDoc &lt;span class="kwrd"&gt;OUTPUT&lt;/span&gt;, @listdata&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;Insert&lt;/span&gt; &lt;span class="kwrd"&gt;Into&lt;/span&gt; List_101&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="kwrd"&gt;Select&lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt; [EmailID], [Email], [DomainID], [SourceID], [TypeEnum], [ImportID], &lt;span class="kwrd"&gt;CAST&lt;/span&gt;(&lt;span class="kwrd"&gt;LEFT&lt;/span&gt;(DateStamp],10) &lt;span class="kwrd"&gt;AS&lt;/span&gt; datetime)&lt;span class="kwrd"&gt;From&lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;OPENXML&lt;/span&gt;(@hDoc, &lt;span class="str"&gt;'/NewDataSet/List_101'&lt;/span&gt;)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&lt;span class="kwrd"&gt;WITH&lt;/span&gt; (&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;[EmailID] &lt;span class="kwrd"&gt;Integer&lt;/span&gt;,[Email] &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(150),[DomainID] &lt;span class="kwrd"&gt;Integer&lt;/span&gt;,[SourceID] &lt;span class="kwrd"&gt;Integer&lt;/span&gt;,[TypeEnum] &lt;span class="kwrd"&gt;Integer&lt;/span&gt;,[ImportID] &lt;span class="kwrd"&gt;Integer&lt;/span&gt;,[DateStamp] &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(10)) &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&lt;span class="kwrd"&gt;Exec&lt;/span&gt; sp_xml_removedocument @hDoc&lt;/pre&gt;
&lt;/div&gt;
&lt;br&gt;

Hopefully this helps the next person.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21595342-113838793335146179?l=ineedadip.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ineedadip.blogspot.com/feeds/113838793335146179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21595342&amp;postID=113838793335146179' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21595342/posts/default/113838793335146179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21595342/posts/default/113838793335146179'/><link rel='alternate' type='text/html' href='http://ineedadip.blogspot.com/2006/01/spxmlpreparedocument-date-problem.html' title='sp_xml_preparedocument - Date problem'/><author><name>Brian</name><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>1</thr:total></entry></feed>
