<?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-7192236668889672798</id><updated>2011-08-01T20:19:24.363+01:00</updated><category term='setup'/><category term='DTS'/><category term='Encode'/><category term='javascript'/><category term='Accessibility'/><category term='system tray'/><category term='environment variable'/><category term='registry'/><category term='SQL Server 2000'/><category term='Deployment'/><category term='.Net'/><category term='String'/><category term='RemovePreviousVersions'/><category term='Windows'/><category term='MSI'/><category term='browsers'/><category term='Infragistics'/><category term='JDE'/><category term='c#'/><category term='OnClientClick'/><category term='notify icon'/><category term='excel'/><category term='IDisposable'/><category term='css'/><category term='windows forms'/><category term='event binding'/><category term='Dispose'/><category term='mutex'/><category term='Reporting services 2008'/><category term='dynamic content'/><category term='Crystal'/><category term='roles'/><category term='membership'/><category term='Debugging'/><category term='Subreport'/><category term='dos'/><category term='eclipse'/><category term='Enumerator'/><category term='List Control'/><category term='code generation'/><category term='ADO.Net'/><category term='ADO'/><category term='LINQ'/><category term='DateTimePicker'/><category term='charts'/><category term='jQuery'/><category term='threads'/><category term='visual studio 2008'/><category term='slow operations'/><category term='SQL Server 2008'/><category term='java'/><category term='deploying'/><category term='C#3.0'/><category term='security'/><category term='UDF'/><category term='Decode'/><category term='SQL Server 2005'/><category term='XML'/><category term='ReportViewer'/><category term='Triggers'/><category term='DotNet'/><category term='ReadOnly'/><category term='Blackerry'/><category term='Cross Server'/><category term='TSQL'/><category term='User Defined Function'/><category term='Insert using Transactions in SQL'/><category term='visual studio'/><category term='Parameters'/><category term='CustomFormat'/><category term='blackberry'/><category term='website development'/><category term='subsonic'/><category term='TryParse'/><category term='Dataset'/><category term='language feature'/><category term='CTE'/><category term='3.0'/><category term='HTML'/><category term='project organization'/><category term='Website Accessibility'/><category term='design'/><category term='asp.net'/><category term='standards'/><category term='IE'/><category term='Process'/><category term='project management'/><category term='Date Format'/><category term='testing'/><category term='Enum'/><category term='file uploader'/><category term='String concatenation'/><category term='web design'/><title type='text'>Spread your Wealth</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>70</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-1332944921997350564</id><published>2009-06-25T11:50:00.004+01:00</published><updated>2009-06-25T16:07:46.601+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='CTE'/><title type='text'>Common Table Expressions</title><content type='html'>Introduced in SQL 2005 was the Common Table Expression (CTE).  These can act like subqueries or views within a SQL statement.&lt;br /&gt;&lt;br /&gt;Good definition on &lt;a href="http://www.4guysfromrolla.com/webtech/071906-1.shtml"&gt;4GuysFromRolla&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/ms190766.aspx"&gt;MSDN&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To use them you use the 'WITH' keyword, for example if you were using the following Subquery:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SELECT&lt;br /&gt; *&lt;br /&gt;FROM&lt;br /&gt;    (&lt;br /&gt;    SELECT&lt;br /&gt;        p.Forename&lt;br /&gt;    ,   p.Surname&lt;br /&gt;    ,   COUNT(m.MessageId) AS MessageCount&lt;br /&gt;    FROM&lt;br /&gt;        [Pupil] p&lt;br /&gt;        INNER JOIN [Message] m ON (p.PupilId = m.PupilId)&lt;br /&gt;    GROUP BY&lt;br /&gt;       p.Forename&lt;br /&gt;   ,   p.Surname&lt;br /&gt;   ) AS PupilsWithMessages&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;to get all pupils with a message you could now use a CTE,&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;WITH PupilsWithMessages (Forename, Surname, MessageCount) AS (&lt;br /&gt;    SELECT&lt;br /&gt;        p.Forename&lt;br /&gt;    ,   p.Surname&lt;br /&gt;    ,   COUNT(m.MessageId) AS MessageCount&lt;br /&gt;    FROM&lt;br /&gt;        [Pupil] p&lt;br /&gt;        INNER JOIN [Message] m ON (p.PupilId = m.PupilId)&lt;br /&gt;    GROUP BY&lt;br /&gt;        p.Forename&lt;br /&gt;    ,   p.Surname&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;SELECT&lt;br /&gt;    *&lt;br /&gt;FROM&lt;br /&gt;    PupilsWithMessages&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This is a simple example but it looks a lot cleaner than subqueries and you can use them in the same way as you would a view. Better examples on the above links.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Recursive CTE's&lt;/h4&gt;&lt;br /&gt;You can also use them for recursing, a simple example I came up with was to loop through a comma delimited list of weekdays and return a seperate row for each one. Whereas previously you would need to use a Cursor you can now use a CTE.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;DECLARE @String varchar(100)&lt;br /&gt;SET @String = 'Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,';&lt;br /&gt;&lt;br /&gt;WITH List (Val, Rest, HierarchyLevel) AS (&lt;br /&gt;    SELECT&lt;br /&gt;        SUBSTRING(@String, 1, CHARINDEX(',', @String)-1) AS Val&lt;br /&gt;    ,   SUBSTRING(@String, CHARINDEX(',', @String)+1,200) AS Rest&lt;br /&gt;    ,   1 AS HierarchyLevel&lt;br /&gt;    UNION ALL&lt;br /&gt;    SELECT&lt;br /&gt;        SUBSTRING(l.Rest, 1, CHARINDEX(',',l.Rest)-1) AS Val&lt;br /&gt;    ,   SUBSTRING(l.Rest, CHARINDEX(',', l.Rest)+1,200) AS Rest&lt;br /&gt;    ,   l.HierarchyLevel + 1 AS HierarchyLevel&lt;br /&gt;    FROM&lt;br /&gt;       List l&lt;br /&gt;    WHERE&lt;br /&gt;       CHARINDEX(',', l.Rest) &lt;&gt; 0&lt;br /&gt;       --AND HierarchyLevel &lt; 5 /*You can limit how 'deep' the recursion goes*/&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;SELECT&lt;br /&gt;    *&lt;br /&gt;FROM&lt;br /&gt;    List&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;In the 2nd query the CTE references itself (List) to continue splitting up the string until the conditions specified in the WHERE statement are true.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-1332944921997350564?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/1332944921997350564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=1332944921997350564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/1332944921997350564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/1332944921997350564'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/06/common-table-expressions.html' title='Common Table Expressions'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-3455898185181355317</id><published>2009-06-04T16:22:00.003+01:00</published><updated>2009-06-04T16:41:27.021+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#3.0'/><title type='text'>New property syntax in C#3.0</title><content type='html'>Prior to C#3.0 we would use the following syntax for creating properties:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;private string _GetAndSet;&lt;br /&gt;public string GetAndSet { get { return _GetAndSet; } set { _GetAndSet = value; } }&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;private string _SetOnly;&lt;br /&gt;public string SetOnly{ get { return _SetOnly; } set { _SetOnly = value; } }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;C#3.0 allows us to use the following syntax which is the equivalent of above.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public string GetAndSet { get; set; }&lt;br/&gt;&lt;br /&gt;public string SetOnly{ get; private set; }&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-3455898185181355317?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/3455898185181355317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=3455898185181355317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3455898185181355317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3455898185181355317'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/06/new-property-syntax-in-c30.html' title='New property syntax in C#3.0'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-2733425454328113716</id><published>2009-06-02T13:08:00.002+01:00</published><updated>2009-06-02T13:15:45.021+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting services 2008'/><title type='text'>Create report in Reporting Services 2008</title><content type='html'>&lt;span style="font-weight:bold;"&gt;This is a great link to show you how to create reports and deploy them:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;http://www.accelebrate.com/sql_training/ssrs_2008_tutorial.htm&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Add a parameter to report once report is created:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Right click parameter in the report data window - add parameter and fill out required fields.&lt;br /&gt;Right click the grid - tablix properties - filters and add in the filter using the parameter as the value.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-2733425454328113716?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/2733425454328113716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=2733425454328113716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2733425454328113716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2733425454328113716'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/06/create-report-in-reporting-services.html' title='Create report in Reporting Services 2008'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-5294731227568631132</id><published>2009-05-15T11:31:00.002+01:00</published><updated>2009-05-15T11:35:41.847+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>Upload XML File</title><content type='html'>To upload an XML file into SQL Server 2008:&lt;br /&gt;&lt;br /&gt;1. Open SQL Server Business Intelligence Studio.&lt;br /&gt;2. Create a new package ( shown in previous post)&lt;br /&gt;3. Create Destination table on Server to upload file to.&lt;br /&gt;4. Drag on Execute SQL Task - add TSQL to truncate the table.&lt;br /&gt;5. Drag on Data Flow Task and double click&lt;br /&gt;6. Drag on XML Source file and set the properties.&lt;br /&gt;7. Drag on OLE DB Destination and set properties.&lt;br /&gt;&lt;br /&gt;Job Done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-5294731227568631132?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/5294731227568631132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=5294731227568631132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/5294731227568631132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/5294731227568631132'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/05/upload-xml-file.html' title='Upload XML File'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-4738737818226711521</id><published>2009-05-14T16:31:00.002+01:00</published><updated>2009-05-14T16:35:00.432+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='subsonic'/><title type='text'>Subsonic Parent -&gt; Child saving</title><content type='html'>How to save subsonic objects to the db that have FK values needing set.&lt;br /&gt;&lt;br /&gt;Here's an example that also uses a transaction.  Please note that you will have add a reference to the System.Transactions namespace in your project and then reference in your class.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;#160;&amp;#160; using (TransactionScope scope = new TransactionScope())&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;try&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Order order = new Order();&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;//populate order details.&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;order.Save(); //Commit to DB&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;OrderItem item = new OrderItem();&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;//populate orderItem details.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;item.Order = order;&amp;#160;&amp;#160; //THIS LINE SETS THE PARENT OBJECT TO ABOVE ORDER&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;item.Save();&amp;#160;&amp;#160;//Commit to DB&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;//complete you transaction&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;scope.Complete();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;catch (System.Data.SqlClient.SqlException ex)&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;throw ex;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-4738737818226711521?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/4738737818226711521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=4738737818226711521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4738737818226711521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4738737818226711521'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/05/subsonic-parent-child-saving.html' title='Subsonic Parent -&gt; Child saving'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-6817834716759417451</id><published>2009-05-14T11:42:00.004+01:00</published><updated>2009-05-14T11:59:05.206+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><title type='text'>Create a SSIS package</title><content type='html'>Basic steps to create an SSIS package (old DTS) to copy data from one database to another in SQL Server 2008:&lt;br /&gt;&lt;br /&gt;Great link for the basic steps http://it.toolbox.com/blogs/coding-dotnet/creating-a-ssis-package-24699&lt;br /&gt;&lt;br /&gt;However to truncate the tables before filling them with the above package: &lt;br /&gt;&lt;br /&gt;1. Drag a Execute SQL Task into the control Flow window.  &lt;br /&gt;2. Double click and set the connection &lt;br /&gt;3. Enter SQL Statement&lt;br /&gt;4. Drag green line to the data flow task or the next step to run.&lt;br /&gt;&lt;br /&gt;Point to Note:  This tool is similar to Reporting Services where you create a project and then can have many packages within the project.  Each package can then share the connections within the Data Sources folder.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-6817834716759417451?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/6817834716759417451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=6817834716759417451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/6817834716759417451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/6817834716759417451'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/05/create-ssis-package.html' title='Create a SSIS package'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-5230777062081779186</id><published>2009-05-08T09:56:00.005+01:00</published><updated>2009-05-08T10:11:52.281+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='roles'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='membership'/><title type='text'>Setting up an ASP.Net site for membership using your own database</title><content type='html'>&lt;span style="font-family: arial;font-family:times new roman;font-size:100%;"  &gt;If you are setting up a new application and you want to use the membership and roles security then normally .Net will try to set this up for you in your local express server.  If however you want to set this up in your application database, on your main server then do the following.&lt;br /&gt;&lt;br /&gt;1) Run C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe&lt;br /&gt;2) Use the wizard to select the server and database. (I believe this can be any of 2000/05/08)&lt;br /&gt;3) Change the following in your web config to suit your DB and server settings.  Cahnge any other settings to suit your application.  Click &lt;a href="http://msdn.microsoft.com/en-us/library/6e9y4s5t.aspx"&gt;here&lt;/a&gt; for MSDN article.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre class="libCScode" style="white-space: pre-wrap;" id="ctl00_mainContentContainer_ctl18other" space="preserve"&gt;&lt;configuration&gt;&lt;connectionstrings&gt;&lt;system.web&gt;&lt;authentication mode="Forms"&gt;&lt;authorization&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;connectionStrings&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;add name="MySqlConnection" connectionString="Data&lt;br /&gt;&lt;br /&gt;      Source=YOURSQLSERVENAME;Initial Catalog=YOURDBNAME;Integrated&lt;br /&gt;&lt;br /&gt;      Security=SSPI;" /&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;system.web&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;authentication mode="Forms" &amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;forms loginUrl="login.aspx"&lt;br /&gt;&lt;br /&gt;        name=".ASPXFORMSAUTH" /&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/authentication&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;authorization&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;deny users="?" /&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/authorization&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15"&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;providers&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;clear /&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;add&lt;br /&gt;&lt;br /&gt;          name="SqlProvider"&lt;br /&gt;&lt;br /&gt;          type="System.Web.Security.SqlMembershipProvider"&lt;br /&gt;&lt;br /&gt;          connectionStringName="MySqlConnection"&lt;br /&gt;&lt;br /&gt;          applicationName="MyApplication"&lt;br /&gt;&lt;br /&gt;          enablePasswordRetrieval="false"&lt;br /&gt;&lt;br /&gt;          enablePasswordReset="true"&lt;br /&gt;&lt;br /&gt;          requiresQuestionAndAnswer="true"&lt;br /&gt;&lt;br /&gt;          requiresUniqueEmail="true"&lt;br /&gt;&lt;br /&gt;          passwordFormat="Hashed" /&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;/providers&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/membership&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;/system.web&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:times new roman;font-size:100%;"  &gt;&lt;br /&gt;4) That should be you!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I got this info by using &lt;a href="http://stackoverflow.com/"&gt;StackOverflow&lt;/a&gt; and asking this &lt;a href="http://stackoverflow.com/questions/835124/how-do-i-change-my-asp-net-membership-database-from-express-to-standard-sql"&gt;question&lt;/a&gt;.&lt;/span&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/authorization&gt;&lt;/authentication&gt;&lt;/system.web&gt;&lt;/connectionstrings&gt;&lt;/configuration&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-5230777062081779186?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/5230777062081779186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=5230777062081779186' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/5230777062081779186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/5230777062081779186'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/05/setting-up-aspnet-site-for-membership.html' title='Setting up an ASP.Net site for membership using your own database'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-4574925488825383870</id><published>2009-05-07T15:37:00.003+01:00</published><updated>2009-05-07T15:42:57.382+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='charts'/><category scheme='http://www.blogger.com/atom/ns#' term='Infragistics'/><title type='text'>Problem with Infragistics Charts in a Web Site!</title><content type='html'>When using Infragistics Chart components in a web site, you may get a &lt;span style="font-style: italic;"&gt;GDI+&lt;/span&gt; error relating to image permissions.&lt;br /&gt;&lt;br /&gt;There is an infragistics solution to this problem &lt;a href="http://devcenter.infragistics.com/Support/KnowledgeBaseArticle.Aspx?ArticleID=5444"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You have to grant user permissions to the web site folder/virtual directory on the server.&lt;br /&gt;&lt;br /&gt;Right click the folder &gt; Properties &gt; Security Tab &gt; Add&lt;br /&gt;&lt;br /&gt;On Windows Server 2003 you would do: &lt;span style="font-style: italic;"&gt;servername\NETWORK SERVICE&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;And that should be it.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-4574925488825383870?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/4574925488825383870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=4574925488825383870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4574925488825383870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4574925488825383870'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/05/problem-with-infragistics-charts-in-web.html' title='Problem with Infragistics Charts in a Web Site!'/><author><name>Andy</name><uri>http://www.blogger.com/profile/05946890717469547713</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-2984200636350349</id><published>2009-05-07T09:10:00.004+01:00</published><updated>2009-05-27T11:07:50.548+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>Calling server side ASP.NET method from jQuery</title><content type='html'>I was recently looking at calling a server side method from an ASP.NET 3.5 application using jQuery. The following example has a server side method that returns some HTML markup from a database to jQuery, which then inserts it into the page markup.&lt;br /&gt;&lt;br /&gt;Server side code, in Default.aspx:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;using&lt;/span&gt; System.Web.Services;&lt;br /&gt;&lt;br /&gt;[&lt;span style="color:#339999;"&gt;WebMethod&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;true&lt;/span&gt;)]&lt;br /&gt;&gt;(&lt;span style="color:#3333ff;"&gt;public static string&lt;/span&gt; getMarkup()&lt;br /&gt;{&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; "&amp;lt;h3&amp;gt;Test Markup&amp;lt;/h3&amp;gt;";&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You need to make the method static and include the WebMethod(true) operator above it.  You can also use the following code to call a WebMethod from an asmx or WCF web service.&lt;br /&gt;&lt;br /&gt;You call this from the client side jQuery code using:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$("#loadHome").click(function(){&lt;br /&gt;  $.ajax({&lt;br /&gt;      type: "POST",&lt;br /&gt;      url: "./Default.aspx/getMarkup",&lt;br /&gt;      data: "{}",&lt;br /&gt;      contentType: "application/json; charset=utf-8",&lt;br /&gt;      dataType: "json",&lt;br /&gt;      success: function(result){&lt;br /&gt;        $("#contentDiv").html(result.d);&lt;br /&gt;    }&lt;br /&gt;  });&lt;br /&gt;});&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This uses the jQuery &lt;a href="http://docs.jquery.com/Ajax"&gt;ajax&lt;/a&gt; method to get the data from the server side method, which is returned as a &lt;a href="http://www.json.org/"&gt;JSON&lt;/a&gt; object. You use the .d notation on the JSON object to get the result supplied from the server side.&lt;br /&gt;&lt;br /&gt;If you want to send any data to the method, send as a JSON object.  For example if you had a server side method that takes 2 params, orderId and customerId, you would use:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;var data = "{orderId:'2',customerId:'99'}";&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-2984200636350349?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/2984200636350349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=2984200636350349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2984200636350349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2984200636350349'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/05/calling-server-side-aspnet-method-from.html' title='Calling server side ASP.NET method from jQuery'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-9070948806743593936</id><published>2009-04-30T08:43:00.001+01:00</published><updated>2009-04-30T08:46:59.963+01:00</updated><title type='text'>Error On Install: "Installation User Interface Option"</title><content type='html'>I had a problem installing a new version of a windows application, even after I uninstalled all previous versions.  I toyed the following steps, but I had to search the registry myself with the produce code form the MSI project in .Net.  Just deleted the whole folder once it was found.&lt;br /&gt;&lt;br /&gt;Here a snippet of the web page I found with the solution:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;If the application is a Windows or Web application -  &lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Go to START, RUN and type the following: MSIEXEC /X "path to the .MSI  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;file you  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;want to uninstall" and click OK.  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. After the application is uninstalled, try installing your MSI file  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;again. If you  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;get the same error, then some portion of the application still exists on  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;the  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;machine. You will want to use MSIZAP to remove the product, or you can  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;search for  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;the PRODUCTID of the msi package in the registry and remove the associated  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;registry  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;keys. The Product ID looks like {xxxxx-xxxxx-xxx-xxxxx-xxxxx} &lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Link to source:  &lt;a href="http://www.tech-archive.net/Archive/VisualStudio/microsoft.public.vsnet.general/2005-10/msg00086.html"&gt;http://www.tech-archive.net/Archive/VisualStudio/microsoft.public.vsnet.general/2005-10/msg00086.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-9070948806743593936?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/9070948806743593936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=9070948806743593936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/9070948806743593936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/9070948806743593936'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/04/error-on-install-installation-user.html' title='Error On Install: &quot;Installation User Interface Option&quot;'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-4753567079831046877</id><published>2009-04-29T12:01:00.004+01:00</published><updated>2009-04-29T13:06:10.243+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='standards'/><category scheme='http://www.blogger.com/atom/ns#' term='Accessibility'/><category scheme='http://www.blogger.com/atom/ns#' term='Website Accessibility'/><title type='text'>Website Accessibility</title><content type='html'>There are no set laws in the UK regarding Website Accessibility, but your website should at least meet Priority Level 1 and it is recommended to meet Priority Level 2.&lt;br /&gt;&lt;br /&gt;Her is the link to Website &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Accessibility&lt;/span&gt; Level 1 (A) reference:&lt;br /&gt;&lt;br /&gt;&lt;a href="file:///E:/MUSIC/Justice"&gt;http://www.w3.org/WAI/WCAG20/quickref/Overview.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-4753567079831046877?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/4753567079831046877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=4753567079831046877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4753567079831046877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4753567079831046877'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/04/website-accessability.html' title='Website Accessibility'/><author><name>Andy</name><uri>http://www.blogger.com/profile/05946890717469547713</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-5710983123075700814</id><published>2009-04-29T11:15:00.003+01:00</published><updated>2009-04-29T11:30:39.309+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='website development'/><title type='text'>Using multiple versions of browsers (IE + FF)</title><content type='html'>&lt;h2&gt;Internet Explorer&lt;/h2&gt;&lt;br /&gt;I found this handy tool, &lt;a href="http://www.my-debugbar.com/wiki/IETester/HomePage"&gt;IETester&lt;/a&gt;, for testing your websites in multiple versions of IE, each in a different tab.  Currently it can test IE 5.5, 6, 7 and 8 beta.  &lt;br /&gt;&lt;br /&gt;Since it's an early alpha release there is a list of known bugs on their homepage but it is good enough to view pages in.&lt;br /&gt;&lt;h2&gt;Firefox&lt;/h2&gt;&lt;br /&gt;I found the easiest way of testing in various versions of FF was to use a portable version since it doesn't need any installation and won't mess with whichever current install you have.  &lt;br /&gt;&lt;br /&gt;You can find all portable legacy versions if FF &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=152554&amp;package_id=168825"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-5710983123075700814?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/5710983123075700814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=5710983123075700814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/5710983123075700814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/5710983123075700814'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/04/using-multiple-versions-of-browsers-ie.html' title='Using multiple versions of browsers (IE + FF)'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-6289462210625906102</id><published>2009-04-28T11:09:00.003+01:00</published><updated>2009-04-28T12:08:57.226+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='language feature'/><category scheme='http://www.blogger.com/atom/ns#' term='3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='visual studio 2008'/><title type='text'>Extension Methods in C# 3.0</title><content type='html'>A new function of C# 3.0 is &lt;a href="http://msdn.microsoft.com/en-us/library/bb383977.aspx"&gt;Extension Methods&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;"Extension methods enable you to "add" methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type."&lt;br /&gt;&lt;br /&gt;For example, if you wanted a method to convert a temperature from celsius to fahrenheit, where previously you would use&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#333399;"&gt;int&lt;/span&gt; temp = 30;&lt;br /&gt;&lt;span style="color:#333399;"&gt;int&lt;/span&gt; i = &lt;span style="color:#339999;"&gt;myClass&lt;/span&gt;.CelsiusToFahrenheit(temp);&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;using extension methods you can now use&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="color:#333399;"&gt;int&lt;/span&gt; temp = 30;&lt;br /&gt;&lt;span style="color:#333399;"&gt;int&lt;/span&gt; i = temp.CelsiusToFahrenheit();&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;To do this you would create a new static class to contain the static method CelsiusToFahrenheit. The key to extension methods is passing in the &lt;span style="font-family:courier new;color:#333399;"&gt;this&lt;/span&gt; keyword along with the variable. For example,&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="color:#333399;"&gt;public static class &lt;/span&gt;&lt;span style="color:#339999;"&gt;myClass&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#333399;"&gt;public static int&lt;/span&gt; CelsiusToFahrenheit(&lt;span style="color:#333399;"&gt;this int&lt;/span&gt; temp)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:#333399;"&gt;return&lt;/span&gt; (9 / 5) * temp + 32;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This will now allow you to use the CelsiusToFahrenheit method on any integer variables.&lt;br /&gt;&lt;br /&gt;You can also add methods to extend your own custom classes, and the methods can have different return types. For example, if you have your own class, TestClass, you can create a static method using extending TestClass, e.g.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="color:#333399;"&gt;public static&lt;/span&gt;&lt;span style="color:#339999;"&gt; DateTime&lt;/span&gt; doSomething(&lt;span style="color:#333399;"&gt;this&lt;/span&gt;&lt;span style="color:#339999;"&gt; TestClass&lt;/span&gt; t)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#006600;"&gt;//do something&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Which will then allow you to use:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="color:#339999;"&gt;TestClass&lt;/span&gt; t = &lt;span style="color:#333399;"&gt;new&lt;/span&gt; &lt;span style="color:#339999;"&gt;TestClass&lt;/span&gt;();&lt;br /&gt;&lt;span style="color:#339999;"&gt;DateTime&lt;/span&gt; x = t.doSomething();&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-6289462210625906102?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/6289462210625906102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=6289462210625906102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/6289462210625906102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/6289462210625906102'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/04/extension-methods-in-c-30.html' title='Extension Methods in C# 3.0'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-8349398074809987438</id><published>2009-04-27T13:39:00.009+01:00</published><updated>2009-04-27T16:33:37.886+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynamic content'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='event binding'/><title type='text'>jQuery events not firing for dynamic content</title><content type='html'>When adding dynamic content (using AJAX or DOM modification) using jQuery, events are not fired for the new objects, for example if you have the following html:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;button id="load" href="#"&amp;gt;Test&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;lt;div id="container"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;When I click the load button I want to add a link to another page inside the container DIV, so I use the following jQuery.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$(function() {&lt;br /&gt; $("#load").click(function() {&lt;br /&gt;  $("#container").html("&amp;lt;a id='popup' href='contactForm.html'&amp;gt;popup&amp;lt;/a&amp;gt;")&lt;br /&gt; });&lt;br /&gt;&lt;br /&gt; $("#popup").click(function(){&lt;br /&gt;  alert("Clicked");&lt;br /&gt;  return false;&lt;br /&gt; });&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The click event for the dynamically created anchor tag (id="popup") will not fire using the above because this code is run once the document is ready, and at that time jQuery will look for an object with an Id of popup which doesn't exist yet.&lt;br /&gt;&lt;br /&gt;I've found a few different ways to do this:&lt;br /&gt;&lt;br /&gt;1. Add a generic click event for the body tag and check what was clicked, for example:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$("body").click(function(e){&lt;br /&gt; var target = $(e.target);&lt;br /&gt; if (target.is("#popup")) {&lt;br /&gt;  alert("Clicked");&lt;br /&gt;  return false;&lt;br /&gt; }&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Using this example you check what was clicked using target.is(), you can use any valid CSS selector statements to check the item clicked.  This way is simple to implement but can quickly grow if you have a lot of dynamic content.&lt;br /&gt;&lt;br /&gt;2. Use the &lt;a href="http://docs.jquery.com/Events/live"&gt;live command&lt;/a&gt;, which will tell jQuery to bind any current and future references of "#popup" to the click event.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$("#popup").live("click",function(){&lt;br /&gt; alert("Clicked");&lt;br /&gt; return false;&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The following 3 ways are variations on the same theme in that the events are bound after content creation.&lt;br /&gt;&lt;br /&gt;3. Use the jQuery &lt;a href="http://docs.jquery.com/Events/bind"&gt;Bind command&lt;/a&gt; to bind the click event to a particular function on creation. e.g.:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$("#load").click(function(){&lt;br /&gt; $("#container").html("&amp;lt;a id='popup' href='contactForm.html'&amp;gt;popup&amp;lt;/a&amp;gt;").bind('click', loadClick);&lt;br /&gt;//can also use&lt;br /&gt;//$("#container").html("&amp;lt;a id='popup' href='contactForm.html'&amp;gt;popup&amp;lt;/a&amp;gt;").click(loadClick);&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;function loadClick(){&lt;br /&gt; alert("Clicked");&lt;br /&gt; return false;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;4. Insert the function for handling the click event within the initial click event when you create the popup link.  This runs the event binding as soon as the item is added.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$("#load").click(function(){&lt;br /&gt; $("#container").html("&amp;lt;a id='popup' href='contactForm.html'&amp;gt;popup&amp;lt;/a&amp;gt;");&lt;br /&gt; $("#popup").click(function(){&lt;br /&gt;  alert("Clicked");&lt;br /&gt;  return false;&lt;br /&gt; });&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;5. Similar to the above method except this way you create a method which does all data binding (bindEvents()).  This can be useful if you have a lot dynamic content that needs to be bound at the same time, it can be encapsulated into 1 event.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$("#load").click(function(){&lt;br /&gt; $("#container").html("&amp;lt;a id='popup' href='contactForm.html'&amp;gt;popup&amp;lt;/a&amp;gt;");&lt;br /&gt;  bindEvents();&lt;br /&gt; });&lt;br /&gt;    &lt;br /&gt;function bindEvents(){&lt;br /&gt; $("#popup").click(function(){&lt;br /&gt;  alert("Clicked");&lt;br /&gt;  return false;&lt;br /&gt; });&lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;There's also a plugin called &lt;a href="http://docs.jquery.com/Plugins/livequery"&gt;livequery&lt;/a&gt; that makes binding easier.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-8349398074809987438?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/8349398074809987438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=8349398074809987438' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8349398074809987438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8349398074809987438'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/04/jquery-events-not-firing-for-dynamic.html' title='jQuery events not firing for dynamic content'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-9148564414435425732</id><published>2009-04-26T15:57:00.002+01:00</published><updated>2009-05-07T10:42:57.145+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Firebug for all browsers!</title><content type='html'>When designing websites I've found &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843"&gt;firebug&lt;/a&gt; for FireFox invaluable for checking out exactly what's going on.  I've now found you can get &lt;a href="http://getfirebug.com/lite.html"&gt;Firebug lite&lt;/a&gt; for use on any browser!&lt;br /&gt;&lt;br /&gt;It's very easy to use, all you have to do is include the following code in any page that you want to use it in:&lt;br /&gt;&lt;pre&gt;&amp;lt;script type="'text/javascript'" src="%27http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js%27"&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;br /&gt;Genius.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-9148564414435425732?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/9148564414435425732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=9148564414435425732' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/9148564414435425732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/9148564414435425732'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/04/firebug-for-all-browsers.html' title='Firebug for all browsers!'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-3466373585150517569</id><published>2009-04-09T10:29:00.001+01:00</published><updated>2009-04-09T10:31:39.347+01:00</updated><title type='text'>jQuery Intellisense for Visual Studio</title><content type='html'>The mighty Guthrie explains all....&lt;br /&gt;&lt;br /&gt;&lt;a title="blocked::http://weblogs.asp.net/scottgu/archive/2008/11/21/jquery-intellisense-in-vs-2008.aspx" href="http://weblogs.asp.net/scottgu/archive/2008/11/21/jquery-intellisense-in-vs-2008.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2008/11/21/jquery-intellisense-in-vs-2008.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-3466373585150517569?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://weblogs.asp.net/scottgu/archive/2008/11/21/jquery-intellisense-in-vs-2008.aspx' title='jQuery Intellisense for Visual Studio'/><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/3466373585150517569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=3466373585150517569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3466373585150517569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3466373585150517569'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/04/jquery-intellisense-for-visual-studio.html' title='jQuery Intellisense for Visual Studio'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-3002445303373317417</id><published>2009-04-01T16:47:00.002+01:00</published><updated>2009-04-01T16:52:33.102+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TSQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2000'/><title type='text'>TSQL script to loop round all databases</title><content type='html'>Hi Guys&lt;br /&gt;&lt;br /&gt;Quick script to loop round all databases and perform an action - in this case its setting all databases to simple recovery.  The keyword here is sp_msforeachdb - pure genius :)  &lt;br /&gt;&lt;br /&gt;use master&lt;br /&gt;GO&lt;br /&gt;sp_msforeachdb '&lt;br /&gt;   declare @sql VARCHAR(1000)&lt;br /&gt;   IF DATABASEPROPERTYEX(''?'', ''Rjavascript:void(0)ecovery'') &lt;&gt; ''SIMPLE''&lt;br /&gt;   begin&lt;br /&gt;     set @sql = ''ALTER DATABASE ? SET RECOVERY SIMPLE''&lt;br /&gt;PRINT @sql&lt;br /&gt;&lt;br /&gt;   end'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-3002445303373317417?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/3002445303373317417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=3002445303373317417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3002445303373317417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3002445303373317417'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/04/tsql-script-to-loop-round-all-databases.html' title='TSQL script to loop round all databases'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-7208671388553832568</id><published>2009-03-29T11:12:00.002+01:00</published><updated>2009-03-29T11:19:56.578+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dispose'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='IDisposable'/><title type='text'>Using keyword</title><content type='html'>When using anything that implements IDisposable (SqlDateReader, SqlConnection etc) you can use the &lt;span style="font-family:courier new;color:#3333ff;"&gt;using&lt;/span&gt; keyword to ensure that the object is disposed, e.g.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;using&lt;/span&gt; (&lt;span style="color:#339999;"&gt;SqlDataReader&lt;/span&gt; reader = &lt;span style="color:#339999;"&gt;Dal&lt;/span&gt;.ExecuteReader(GetConnection(), &lt;span style="color:#990000;"&gt;"SelectProductAll"&lt;/span&gt;))&lt;br /&gt;{&lt;br /&gt;    dsScrum.ProductTask.Clear();&lt;br /&gt;    &lt;span style="color:#3333ff;"&gt;if&lt;/span&gt; (reader.HasRows)&lt;br /&gt;    dsScrum.Product.Load(reader);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Is the same as:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#339999;"&gt;SqlDataReader&lt;/span&gt; reader = &lt;span style="color:#339999;"&gt;Dal&lt;/span&gt;.ExecuteReader(GetConnection(),&lt;span style="color:#990000;"&gt;"SelectProductAll"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;try&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    dsScrum.ProductTask.Clear();&lt;br /&gt;    &lt;span style="color:#3333ff;"&gt;if&lt;/span&gt; (reader.HasRows)&lt;br /&gt;        dsScrum.Product.Load(reader);&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;finally&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#3333ff;"&gt;if&lt;/span&gt; (reader != &lt;span style="color:#3333ff;"&gt;null&lt;/span&gt;)&lt;br /&gt;        reader.Dispose();&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-7208671388553832568?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/7208671388553832568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=7208671388553832568' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/7208671388553832568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/7208671388553832568'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/03/using-keyword.html' title='Using keyword'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-5280634979704053803</id><published>2009-03-25T09:51:00.005Z</published><updated>2009-03-25T17:56:52.426Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>jQuery</title><content type='html'>I've been looking at using Javascript libraries recently, in order to revamp &lt;a href="http://lesleywilliamson.com"&gt;Lesley's site&lt;/a&gt; there are a lot out there (Prototype, Mootools, scriptaculous, Dojo, YUI). I've decided to use JQuery as it appears to have the largest following, which means more support, tutorials and extra plugins. It's also easily extensible meaning you can customise and extend.&lt;br /&gt;&lt;br /&gt;What is it? "jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript." In short, you can get Flash-type effects and general all-round sexiness using only javascript, could be used for cool menus, client side table sorting, tabs, AJAX data/image loading, page manipulation, custom dialog boxes, charts etc.&lt;br /&gt;&lt;br /&gt;To use you need some understanding of CSS as it uses CSS-style selectors ("li", "#Id", ".class", "a&gt;img" etc) to access elements using jQuery and it appears a lot of the functionality uses CSS to move/position elements.&lt;br /&gt;&lt;br /&gt;Here are some good links that I've found:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://jquery.com/"&gt;Main Site&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://docs.jquery.com/Main_Page"&gt;Documentation incl. lots of links&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://docs.jquery.com/Tutorials"&gt;Tutorials&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://blog.themeforest.net/tutorials/jquery-for-absolute-beginners-video-series/"&gt;Beginners video tutorial&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.ericmmartin.com/simplemodal/"&gt;Modal Demo&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://stilbuero.de/jquery/tabs_3/"&gt;Tabs Demo&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.gmarwaha.com/blog/category/client-side/jquery/"&gt;Menu Demo&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.filamentgroup.com/lab/creating_accessible_charts_using_canvas_and_jquery"&gt;Charts Demo&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://abeautifulsite.net/notebook.php?article=58"&gt;File Tree Demo&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://tablesorter.com/docs/"&gt;Sortable Table Demo&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://css-tricks.com/revealing-photo-slider/"&gt;Photo Slider Demo&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.openstudio.fr/jQuery-virtual-tour.html?lang=en"&gt;Virtual Tour Demo (Outrageous)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-5280634979704053803?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/5280634979704053803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=5280634979704053803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/5280634979704053803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/5280634979704053803'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/03/jquery.html' title='jQuery'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-3182577325880364168</id><published>2009-03-24T10:27:00.006Z</published><updated>2009-03-24T10:45:57.620Z</updated><title type='text'>SubSonic</title><content type='html'>&lt;a href="http://subsonicproject.com/"&gt;SubSonic&lt;/a&gt;.....  fed up writing boring DAL code? Me neither.. but if you are this may be for you.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://subsonicproject.com/"&gt;SubSonic&lt;/a&gt; has several things we would be interested in but the main selling point is that it auto generates a DAL for you.  It also has CMS starter site that seems really cool... more on that later.&lt;br /&gt;&lt;br /&gt;I'm not going to re-write their web site help here; so I recommend you visit their &lt;a href="http://subsonicproject.com/"&gt;site&lt;/a&gt; and enjoy the videos.  Code is available from &lt;a href="http://www.codeplex.com/subsonic"&gt;codeplex&lt;/a&gt;... their site was a little flaky when downloading so I used that instead.&lt;br /&gt;&lt;br /&gt;The forums are really good and its been around for a few year now so I think this is something we should all be considering when taking on a new project.&lt;br /&gt;&lt;br /&gt;Almost forgot the good news (yes folks it gets better!) its.... wait for it...... &lt;a href="http://en.wikipedia.org/wiki/Open_source"&gt;OPEN SOURCE!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-3182577325880364168?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://subsonicproject.com/' title='SubSonic'/><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/3182577325880364168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=3182577325880364168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3182577325880364168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3182577325880364168'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/03/subsonic.html' title='SubSonic'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-2540253572153147736</id><published>2009-03-17T12:09:00.003Z</published><updated>2009-03-17T12:36:53.510Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='blackberry'/><category scheme='http://www.blogger.com/atom/ns#' term='setup'/><title type='text'>Setup Blackberry demo on standalone PC</title><content type='html'>I recently had to setup a Blackberry demo onto a standalone laptop, the laptop was a clean install before starting.&lt;br /&gt;&lt;br /&gt;I setup everything on the local computer, including Web Service, as it would not be connected to the internet or network.&lt;br /&gt;&lt;br /&gt;To setup do the following:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Install appropriate .NET Framework.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Install IIS and run aspnet_regiis -i.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Install jdk-1_5_0_17-windows-i586-p.exe for use by simulator.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Install BlackBerry_Email_MDS_4.1.4.exe for MDS simulator to hit network.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Install BlackBerry_Simulators_4.5.0.55_8700-Vodafone.exe, or whichever simulator is to be used.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Install SQLServer onto laptop. Use either desktop engine and connect via IP Address and enterprise manager from own computer to create database, or install full developer edition with Enterprise Manager.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create new copy of Web Service pointing at (local).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create new copy of Blackberry app, only need to change the connection string in the main &lt;webservicename&gt;_Stub class. Use the laptops computer name as you can't use IP Address as it'll be offline and handset can't hit localhost or 127.0.0.1.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Move new .COD into the installation folder of the handset simulator.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Go to network connections on laptop and disable all connections (Right Click-&gt;Disable). Not sure why but when these are enabled and not connected to network the web service calls are very slow.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Run the MDS Simulator first and then open up handset simulator. Done!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I created a batch file to run the MDS and handset simulator:&lt;/p&gt;&lt;p&gt;@echo off&lt;br /&gt;echo Running MDS Simulator...&lt;br /&gt;cd C:\Program Files\Research In Motion\Blackberry Email and MDS Services Simulators 4.1.4\MDS&lt;br /&gt;call run.bat&lt;br /&gt;echo Running 8700 Simulator...&lt;br /&gt;cd C:\Program Files\Research In Motion\Blackberry Smartphone Simulators 4.5.0\4.5.0.55 (8700-Vodafone)&lt;br /&gt;call 8700-Vodafone.bat&lt;br /&gt;pause&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-2540253572153147736?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/2540253572153147736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=2540253572153147736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2540253572153147736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2540253572153147736'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/03/setup-blackberry-demo-on-standalone-pc.html' title='Setup Blackberry demo on standalone PC'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-4570618542924644457</id><published>2009-02-11T12:00:00.001Z</published><updated>2009-02-11T12:04:01.207Z</updated><title type='text'>Change simulator used in Eclipse</title><content type='html'>To change the simulator the cod file is loaded into when you debug in eclipse (you’ll need the VS plugin installed first as you get more handsets with this):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Right click on the project name and select Debug As… -&gt; Debug Configuration&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select the Simulator tab on the right.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Click New, and enter a name.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Click the advanced tab and change the Working Directory to: C:\Program Files\Research In Motion\BlackBerry VS8 Plugin\handheld\simulator&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Now go back to the General tab and you should be able to select which one you want from the Device drop down. e.g. 8700-black.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If the Device drop down has nothing in it enter the following into the Command Line of the Advanced tab: C:\Program Files\Research In Motion\BlackBerry VS8 Plugin\handheld\simulator\fledge.exe /app=Jvm.dll /session=8700-black /app-param=DisableRegistration /app-param=JvmAlxConfigFile:8700-black.xml /data-port=0x4d44 /data-port=0x4d4e /pin=0x2100000A /handheld=8700-black&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-4570618542924644457?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/4570618542924644457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=4570618542924644457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4570618542924644457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4570618542924644457'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/02/change-simulator-used-in-eclipse.html' title='Change simulator used in Eclipse'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-3228356749565121092</id><published>2009-01-18T10:30:00.002Z</published><updated>2009-01-18T10:41:55.538Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='visual studio 2008'/><title type='text'>webdev.webserver error</title><content type='html'>I got the above error in VS.NET 2008 when running an ASP.NET app.   When trying to debug or show in browser the IDE gives the error in the standard "report to microsoft" dialog box followed by the following message "unable to connect to the asp.net development server".&lt;br /&gt;&lt;br /&gt;To fix this error:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Right click on the project in solution explorer.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Hit F4 for properties (don't right click for properties).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Change "Use Dynamic Ports" to false and enter a new port number.  Use one quite close to the current port number, I used 1080.  Default was 1071.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-3228356749565121092?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/3228356749565121092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=3228356749565121092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3228356749565121092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3228356749565121092'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/01/webdevwebserver-error.html' title='webdev.webserver error'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-5907138107426424692</id><published>2009-01-15T16:32:00.005Z</published><updated>2009-01-16T14:58:57.973Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='JDE'/><category scheme='http://www.blogger.com/atom/ns#' term='blackberry'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='Blackerry'/><title type='text'>Show Modal form from Background Application</title><content type='html'>To show a message from within a background application we can’t just use Dialog.alert(); because this will throw errors as the application is not using the Ui thread. Use the following code to launch a message/screen from the app:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Application.&lt;em&gt;getApplication&lt;/em&gt;().invokeAndWait(&lt;strong&gt;&lt;span style="color:#990000;"&gt;new&lt;/span&gt;&lt;/strong&gt; Runnable()&lt;br /&gt;{&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#990000;"&gt;public void&lt;/span&gt;&lt;/strong&gt; run()&lt;br /&gt;{&lt;br /&gt;UiEngine ui = Ui.&lt;em&gt;getUiEngine&lt;/em&gt;();&lt;br /&gt;Screen screen = &lt;strong&gt;&lt;span style="color:#990000;"&gt;new&lt;/span&gt;&lt;/strong&gt; Dialog(&lt;span style="color:#3333ff;"&gt;"Message"&lt;/span&gt;, &lt;span style="color:#990000;"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt; Object[]{&lt;span style="color:#3333ff;"&gt;"Ok"&lt;/span&gt;,&lt;span style="color:#3333ff;"&gt;"Cancel"&lt;/span&gt;}, &lt;span style="color:#990000;"&gt;&lt;strong&gt;null&lt;/strong&gt;&lt;/span&gt;, 0, Bitmap.&lt;em&gt;getPredefinedBitmap&lt;/em&gt;(Bitmap.&lt;em&gt;&lt;span style="color:#3333ff;"&gt;EXCLAMATION&lt;/span&gt;&lt;/em&gt;));&lt;br /&gt;ui.pushGlobalScreen(screen, 1, UiEngine.&lt;em&gt;&lt;span style="color:#3333ff;"&gt;GLOBAL_MODAL&lt;/span&gt;&lt;/em&gt;);&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;String&lt;br /&gt;modalResult = ((Dialog)screen).getSelectedValue();&lt;br /&gt;}&lt;br /&gt;});&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Can change the screen constructor depending on screen required, the above example just gives an Ok and Cancel button. Use the &lt;span style="font-family:courier new;"&gt;invokeAndWait&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;()&lt;/span&gt; method blocks the current thread and waits for user to click button to give reply.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-5907138107426424692?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/5907138107426424692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=5907138107426424692' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/5907138107426424692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/5907138107426424692'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/01/show-modal-form-from-background.html' title='Show Modal form from Background Application'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-8622757853790949573</id><published>2009-01-15T16:29:00.001Z</published><updated>2009-01-15T16:31:15.651Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='blackberry'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Cannot Find .debug file error</title><content type='html'>If you launch the simulator and get the above error it means that the simulator is loaded with the wrong version of the application.  Using Browse.. from the dialog box that pops up and selecting the .debug file won’t fix it. &lt;br /&gt;&lt;br /&gt;Not sure why this happens but the version loaded and the version in the .debug file differ so any changes you make will not be reflected on the simulator.  Sometimes this can happen if you have a dialog box open and you try to debug.  I also got this error when I had set an icon in the project, I then removed the jpg file from the workspace but did not delete the icon resource and launched the application.&lt;br /&gt;&lt;br /&gt;You can clear the applications from the simulator and put it back to it’s original state by using the /clear-flash command in the batch file for launching the simulator, located in:&lt;br /&gt;&lt;eclipse&gt;\plugins\net.rim.eide.componentpack4.3.0_4.3.0.8\components\samples\&lt;br /&gt;&lt;br /&gt;I just added this in, ran it once and then removed it.  You can leave it in to get a fresh version of the simulator each time but it takes longer to load and simulator will always prompt to use wizard on load.  You need to change something in the project and rebuild it before you will see it on the simulator.&lt;br /&gt;&lt;br /&gt;To view all other commands that can be used in the batch file, navigate to the samples folder and use the fledge /help command.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-8622757853790949573?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/8622757853790949573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=8622757853790949573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8622757853790949573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8622757853790949573'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/01/cannot-find-debug-file-error.html' title='Cannot Find .debug file error'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-41680944464382123</id><published>2009-01-15T14:51:00.002Z</published><updated>2009-01-15T15:16:07.989Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='String concatenation'/><title type='text'>String.Format()</title><content type='html'>When concatenating strings you can use the String.Format() method rather than adding seperate strings.&lt;br /&gt;&lt;br /&gt;String.Format() is based on the StringBuilder class and, as such, allows you to concatenate strings with the added performance of the StringBuilder class.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#339999;"&gt;int&lt;/span&gt; intOne = 22;&lt;br /&gt;&lt;span style="color:#339999;"&gt;String&lt;/span&gt; strTwo = &lt;span style="color:#993300;"&gt;"Donald"&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:#339999;"&gt;String &lt;span style="color:#000000;"&gt;result =&lt;/span&gt; String&lt;/span&gt;.Format&lt;span style="color:#996633;"&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#993300;"&gt;"{0} is {1} years old on {3}"&lt;/span&gt;, strTwo, intOne, dataSet.Tables[&lt;span style="color:#993300;"&gt;"Employee"&lt;/span&gt;].Rows[0][&lt;span style="color:#993300;"&gt;"DOB"&lt;/span&gt;].ToString());&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;You can have any number of parameters, they must be passed in the correct order, e.g. first parameters replaces {0}, second parameter replaces {1} etc.&lt;br /&gt;&lt;br /&gt;This gives the same results as the following but performance wise it is better because the compiler doesn't destroy and recreate lots of String objects.:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#00cccc;"&gt;&lt;span style="color:#339999;"&gt;String&lt;/span&gt; &lt;span style="color:#000000;"&gt;result =&lt;/span&gt; &lt;span style="color:#000000;"&gt;strTwo&lt;/span&gt; &lt;span style="color:#000000;"&gt;+&lt;/span&gt; &lt;span style="color:#660000;"&gt;" is "&lt;/span&gt; &lt;span style="color:#000000;"&gt;+ intOne +&lt;/span&gt; &lt;/span&gt;&lt;span style="color:#660000;"&gt;" years old on "&lt;/span&gt;&lt;span style="color:#000000;"&gt; + dataSet.Tables[&lt;span style="color:#660000;"&gt;"Employee"&lt;/span&gt;].Rows[0][&lt;span style="color:#660000;"&gt;"DOB"&lt;/span&gt;].ToString;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-41680944464382123?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn.microsoft.com/en-us/library/system.string.format.aspx' title='String.Format()'/><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/41680944464382123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=41680944464382123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/41680944464382123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/41680944464382123'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/01/stringformat.html' title='String.Format()'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-8419124129694527713</id><published>2009-01-13T11:23:00.003Z</published><updated>2009-01-15T16:26:17.591Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='dos'/><category scheme='http://www.blogger.com/atom/ns#' term='environment variable'/><title type='text'>Use environment variable in DOS</title><content type='html'>I've found this very helpful when using DOS a lot. I had to navigate to C:\Program Files\eclipse\plugins\net.rim.eide.componentpack4.3.0_4.3.0.8\components\bin\ in dos a lot which was a headache so when using the command prompt I have created an environment variable to do it quicker.&lt;br /&gt;&lt;br /&gt;To do this:&lt;br /&gt;&lt;p&gt;&lt;li&gt;Right click, properties on My Computer&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Advanced tab then Environment Variables&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I created a new User Variable (top box) named BBEclipse. Set the path (variable value) to C:\Program Files\eclipse\plugins\net.rim.eide.componentpack4.3.0_4.3.0.8\components\bin&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Now in command prompt you can use cd “%BBEclipse%” to navigate to that folder.&lt;/li&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-8419124129694527713?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/8419124129694527713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=8419124129694527713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8419124129694527713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8419124129694527713'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2009/01/use-environment-variable-in-dos.html' title='Use environment variable in DOS'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-3618370749019997642</id><published>2008-11-24T15:59:00.003Z</published><updated>2008-11-24T16:03:39.315Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Insert using Transactions in SQL'/><title type='text'>Distributed Transactions in SQL</title><content type='html'>Hi, the below is the process of inserting records into SQL Table Using Distributed Transactions&lt;br /&gt;&lt;br /&gt;BEGIN TRANSACTION&lt;br /&gt;INSERTINTODACS_Telephones(Registration, Mobile)Values('Nag','Reg')&lt;br /&gt;IF @@ERROR &lt;&gt; 0&lt;br /&gt;BEGIN&lt;br /&gt;ROLLBACK TRANSACTION&lt;br /&gt;END&lt;br /&gt;INSERTINTO Vehicle ([ID],Reg_Trim,Warehouse_ID)Values('Naga','Regist','w1')&lt;br /&gt;IF @@ERROR &lt;&gt; 0&lt;br /&gt;BEGIN&lt;br /&gt;ROLLBACK TRANSACTION&lt;br /&gt;END&lt;br /&gt;COMMIT TRANSACTION&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-3618370749019997642?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/3618370749019997642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=3618370749019997642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3618370749019997642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3618370749019997642'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/11/distributed-transactions-in-sql.html' title='Distributed Transactions in SQL'/><author><name>Naga</name><uri>http://www.blogger.com/profile/02975073956057878041</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-8309556536099173089</id><published>2008-10-27T14:51:00.002Z</published><updated>2008-10-27T14:57:35.072Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><title type='text'>Modal Popup in IE</title><content type='html'>To have a web page popup in a modal page IE has a javascript function&lt;br /&gt;&lt;br /&gt;&lt;em&gt;window.showModalDialog('page url', 'page title', 'options');&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The syntax for the options is slightly different from &lt;em&gt;window.open&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;To specify height and width we would do:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;'dialogHeight:300px; dialogWidth:300px'&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;To make sure the code works cross browser we can check for the &lt;em&gt;showModalDialog&lt;/em&gt; function and if it is not available we can you use &lt;em&gt;window.open&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;eg.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;if (window.showModalDialog)&lt;br /&gt;{&lt;br /&gt;window.showModalDialog('page.html','MyPage','dialogWidth:300px;dialogHeight:3000px');&lt;br /&gt;}else{&lt;br /&gt;window.open('page.html','MyPage','width=300, height=300');&lt;br /&gt;}&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-8309556536099173089?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/8309556536099173089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=8309556536099173089' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8309556536099173089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8309556536099173089'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/10/modal-popup-in-ie.html' title='Modal Popup in IE'/><author><name>Andy</name><uri>http://www.blogger.com/profile/05946890717469547713</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-798364700402926498</id><published>2008-10-23T14:55:00.001+01:00</published><updated>2008-10-23T14:55:17.314+01:00</updated><title type='text'>email the blog</title><content type='html'>&lt;div class=Section1&gt;  &lt;p&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt'&gt;Hi Guys&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt'&gt;Did you know that you can email posts directly to the &lt;span class=SpellE&gt;blog&lt;/span&gt;!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt'&gt;When you log in to the &lt;span class=SpellE&gt;blog&lt;/span&gt;, go to settings and create an email address.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt'&gt;You can chose to save the posts as a draft or to publish the post straight away.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt'&gt;Happy Email blogging!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size: 10.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;   &lt;p&gt;&lt;span style="font-family:'Arial';font-size:8pt;"&gt;Glasgow - Proud Host City of the 2014 Commonwealth Games&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:'Arial';font-size:8pt;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:'Arial';font-size:8pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:'Arial';font-size:8pt;"&gt;----------------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:'Arial';font-size:8pt;"&gt;Disclaimer:&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:'Arial';font-size:8pt;"&gt;This message is intended only for use of the addressee. If this message&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:'Arial';font-size:8pt;"&gt;was sent to you in error, please notify the sender and delete this message.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:'Arial';font-size:8pt;"&gt;Glasgow City Council cannot accept responsibility for viruses, so please&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:'Arial';font-size:8pt;"&gt;scan attachments. Views expressed in this message do not necessarily reflect&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:'Arial';font-size:8pt;"&gt;those of the Council who will not necessarily be bound by its contents.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:'Arial';font-size:8pt;"&gt;----------------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:'Arial';font-size:8pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-798364700402926498?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/798364700402926498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=798364700402926498' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/798364700402926498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/798364700402926498'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/10/email-blog.html' title='email the blog'/><author><name>Andy</name><uri>http://www.blogger.com/profile/05946890717469547713</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-3526049028498277043</id><published>2008-10-23T14:43:00.004+01:00</published><updated>2008-10-27T09:25:02.126Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>&amp; or &amp;&amp; that is the question!</title><content type='html'>Using &amp;amp;&amp;amp; instead of &amp;amp;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;if (phContent.Controls[0].ID == "ucSwJobs" &amp;amp; ((SWJobs)phContent.Controls[0]).CheckForCheckedJobs())&lt;br /&gt;{&lt;br /&gt;ShowMessage("You still have selected jobs in SW Jobs!");&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;If we used &amp;amp; in the above if statement we would get an error because the second evaluation relies on the first one being true. If we used &amp;amp;&amp;amp; the first statement would fail and the second statement would throw an error.&lt;br /&gt;By using a double &amp;amp;&amp;amp; we stop the second statement being evealuated if the first fails!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-3526049028498277043?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/3526049028498277043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=3526049028498277043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3526049028498277043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3526049028498277043'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/10/or-that-is-question.html' title='&amp; or &amp;&amp; that is the question!'/><author><name>Andy</name><uri>http://www.blogger.com/profile/05946890717469547713</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-8074169671669713945</id><published>2008-10-23T12:10:00.003+01:00</published><updated>2008-10-27T09:23:33.872Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='OnClientClick'/><title type='text'>Add a confirm popup in asp .net</title><content type='html'>To add a confirm popup when a button is clicked in asp .net do the following:&lt;br /&gt;&lt;br /&gt;In the buttons &lt;em&gt;OnClientClick&lt;/em&gt; add the following javascript:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;if(confirm('Are you sure?'))&lt;/em&gt;&lt;br /&gt;&lt;em&gt;{&lt;/em&gt;&lt;br /&gt;&lt;em&gt;return true;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;}else{&lt;/em&gt;&lt;br /&gt;&lt;em&gt;return false;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;}&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;The confirm method returns a boolean.&lt;br /&gt;&lt;br /&gt;The popup displays the message, an Ok button and a canel button.&lt;br /&gt;&lt;br /&gt;If Ok is clicked return true allows the button to cause a post back.&lt;br /&gt;Clicking cancel returns false cancel the submit action of the button.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-8074169671669713945?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/8074169671669713945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=8074169671669713945' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8074169671669713945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8074169671669713945'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/10/add-confirm-popup-in-asp-net.html' title='Add a confirm popup in asp .net'/><author><name>Andy</name><uri>http://www.blogger.com/profile/05946890717469547713</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-1967483776890018693</id><published>2008-10-21T15:44:00.001+01:00</published><updated>2008-10-21T15:45:37.142+01:00</updated><title type='text'>ConText - Software Developer Text Editor Tool</title><content type='html'>ConTEXT is a small, fast and powerful freeware text editor, developed to serve as a secondary tool for software developers.&lt;br /&gt;&lt;br /&gt;Check out link for features and download.&lt;br /&gt;&lt;br /&gt;http://www.contexteditor.org/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-1967483776890018693?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/1967483776890018693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=1967483776890018693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/1967483776890018693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/1967483776890018693'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/10/context-software-developer-text-editor.html' title='ConText - Software Developer Text Editor Tool'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-5839319073599019737</id><published>2008-10-15T13:31:00.004+01:00</published><updated>2008-10-15T13:36:12.700+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MSI'/><category scheme='http://www.blogger.com/atom/ns#' term='registry'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Get your Application to run at windows start-up</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;Creating a registry key to get your application to run at start-up. I put it in the Local machine folder to get it starting for all users. The example shows for local user, not sure if this will run for every user.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.davemorton.net/2008/08/installing-startup-registry-key-in.html"&gt;Click me&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;br /&gt;&lt;br /&gt;This was used in the Flexi (MyTime) system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-5839319073599019737?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/5839319073599019737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=5839319073599019737' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/5839319073599019737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/5839319073599019737'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/10/get-you-application-to-run-at-windows.html' title='Get your Application to run at windows start-up'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-8812355103547879158</id><published>2008-10-14T10:31:00.006+01:00</published><updated>2008-10-15T13:33:54.935+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='excel'/><category scheme='http://www.blogger.com/atom/ns#' term='file uploader'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2000'/><title type='text'>Uploading Spread into ASp.Net and inserting Data in a spread sheet into Data BAse</title><content type='html'>Uploading a file using FileUploader&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;String Name = FileUpload1.FileName.ToString();&lt;br /&gt;if (FileUpload1.PostedFile != null)&lt;br /&gt;{&lt;br /&gt;fn = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);&lt;br /&gt;SaveLocation = Server.MapPath(fn);&lt;br /&gt;FileUpload1.PostedFile.SaveAs(SaveLocation);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Getting connection to Spread Sheet and SQL to get the data from spread sheet and insert into SQl TABLE(Table NAme: Photo Finding)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Server.MapPath(fn) + ";" + "Extended Properties=Excel 8.0;";&lt;br /&gt;OleDbConnection con = new OleDbConnection(sConnectionString);&lt;br /&gt;SqlConnection con1 = new SqlConnection("data source=DCSQL2;initial catalog=gGilesDW;integrated security=SSPI;persist security info=False;Trusted_Connection=Yes");&lt;br /&gt;OleDbDataReader oledbrdr = null;&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;con.Open();&lt;br /&gt;// Create OleDbCommand object and select data from worksheet Sheet1&lt;br /&gt;OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", con);&lt;br /&gt;oledbrdr = cmd.ExecuteReader();&lt;br /&gt;con1.Open();&lt;br /&gt;while (oledbrdr.Read())&lt;br /&gt;{&lt;br /&gt;String Status = Convert.ToString(oledbrdr["Status"]);&lt;br /&gt;String id = Convert.ToString(oledbrdr["ID"]);&lt;br /&gt;query = "INSERT INTO PhotoFinding" + "(Status,[ID]) " + " VALUES ('" + Status + "','" + id + "')";&lt;br /&gt;SqlCommand sqlcmd = new SqlCommand(query, con1);&lt;br /&gt;i = sqlcmd.ExecuteNonQuery();&lt;br /&gt;}&lt;br /&gt;if (i == 1)&lt;br /&gt;{&lt;br /&gt;Label2.Text = "Hai Data Base is Updated Sucessfully";&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;Label2.Text = "The Process of Updating Failed";&lt;br /&gt;}&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-8812355103547879158?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/8812355103547879158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=8812355103547879158' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8812355103547879158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8812355103547879158'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/10/uploading-spread-into-aspnet-and.html' title='Uploading Spread into ASp.Net and inserting Data in a spread sheet into Data BAse'/><author><name>Naga</name><uri>http://www.blogger.com/profile/02975073956057878041</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-4882108449533252744</id><published>2008-10-13T12:51:00.003+01:00</published><updated>2008-10-13T13:09:25.191+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><category scheme='http://www.blogger.com/atom/ns#' term='visual studio 2008'/><title type='text'>LINQ in Visual Studio 2008</title><content type='html'>To use LINQ in a project add a 'LINQ to SQL Classes' template.&lt;br /&gt;&lt;br /&gt;this opens a .dbml file that you can drag tables onto to make classes and stored procedures to make methods.&lt;br /&gt;When you drag tables across there relationships are detected.&lt;br /&gt;&lt;br /&gt;To use linq you need to create a Data Context to connect to your classes and methods.&lt;br /&gt;This is usually called 'Whatever you named your LINQ to SQL Classes' + DataContext, eg.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;PDPDataContext db = new PDPDataContext();&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Get Data&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;To get all users you might do somehting like this:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;var users: = from o in db.Users&lt;/em&gt;&lt;br /&gt;&lt;em&gt;                      select o;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;This would select every record and field from the users table.&lt;br /&gt;&lt;br /&gt;You can then bind this like you would a dataset or datatable.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;datasource = users;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;To insert a record using linq we can do the following:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Create an instance of the user class created by the LINQ to SQL Classes.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;User u = new User();&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;Set the properties:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;u.Name = "Jim";&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;Add User:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;db.Users.InsertOnSubmit(u);&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Save to Database:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;db.SubmitChanges();&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Update a record&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Get a single record:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;User u = (from o in db.User&lt;/em&gt;&lt;br /&gt;&lt;em&gt;where o.userid = 2456&lt;/em&gt;&lt;br /&gt;&lt;em&gt;select o).Single();&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;You set the properties as before and save to the database, there is no need to InsertOnSubmit.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;db.SubmitChanges();&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Examples&lt;/strong&gt;&lt;br /&gt;You can group and order and use aggregate functions using LINQ, for examples go &lt;a href="http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-4882108449533252744?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/4882108449533252744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=4882108449533252744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4882108449533252744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4882108449533252744'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/10/linq-in-visual-studio-2008.html' title='LINQ in Visual Studio 2008'/><author><name>Andy</name><uri>http://www.blogger.com/profile/05946890717469547713</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-4233542627089644909</id><published>2008-10-10T11:38:00.002+01:00</published><updated>2008-10-10T13:41:10.199+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notify icon'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='system tray'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><title type='text'>Put your application in the system tray</title><content type='html'>Found this &lt;a href="http://www.developer.com/net/csharp/article.php/3336751"&gt;blog&lt;/a&gt;. East step by step guide on how to setup your application to run in the System Tray.&lt;br /&gt;&lt;br /&gt;http://www.developer.com/net/csharp/article.php/3336751&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-4233542627089644909?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/4233542627089644909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=4233542627089644909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4233542627089644909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4233542627089644909'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/10/put-your-application-in-system-tray.html' title='Put your application in the system tray'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-2794958407828698935</id><published>2008-10-09T14:40:00.004+01:00</published><updated>2008-10-09T15:35:24.618+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DTS'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><title type='text'>Run a DTS package through an application</title><content type='html'>To run a dts package through code:&lt;br /&gt;&lt;br /&gt;Using:&lt;br /&gt;using System.Threading;&lt;br /&gt;using DTS;&lt;br /&gt;&lt;br /&gt;Declare:&lt;br /&gt;private Thread dts;&lt;br /&gt;&lt;br /&gt;Method:&lt;br /&gt;private void CallDTS()&lt;br /&gt;{&lt;br /&gt; dts = new Thread(new ThreadStart(RunDTSPackage));&lt;br /&gt; dts.Start&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;     private void RunDTSPackage()&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                object obj = new object();&lt;br /&gt;&lt;br /&gt;                PackageClass csDTS = new PackageClass();&lt;br /&gt;                csDTS.LoadFromSQLServer("Server", null, null, DTSSQLServerStorageFlags.DTSSQLStgFlag_UseTrustedConnection, null, null, null, "PackageName", ref obj);&lt;br /&gt;                csDTS.Execute();&lt;br /&gt;                csDTS.UnInitialize();&lt;br /&gt;            }&lt;br /&gt;            catch (Exception ex)&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show(ex.Message);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;You might need to wait until the package is finished running before you carry on and call other methods so check for:&lt;br /&gt;  while (dts.IsAlive)&lt;br /&gt;  {&lt;br /&gt;  }&lt;br /&gt;  DoSomething();&lt;br /&gt;&lt;br /&gt;Thats it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-2794958407828698935?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/2794958407828698935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=2794958407828698935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2794958407828698935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2794958407828698935'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/10/run-dts-package-through-application.html' title='Run a DTS package through an application'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-9190770318289934323</id><published>2008-10-09T14:33:00.003+01:00</published><updated>2008-10-09T14:36:24.734+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='Process'/><title type='text'>Check if an instance of another app is open</title><content type='html'>The following method checks to see if an instance of a specific application is running.....&lt;br /&gt;&lt;br /&gt;using System.Diagnostics;&lt;br /&gt;&lt;br /&gt;private bool CheckIfPPlusOpen()&lt;br /&gt;        {&lt;br /&gt;            Process[] pApps = Process.GetProcesses();&lt;br /&gt;            bool bPPlus = false;&lt;br /&gt;            foreach (Process p in pApps)&lt;br /&gt;            {&lt;br /&gt;                if (p.ProcessName.Equals("P+Test"))&lt;br /&gt;                {&lt;br /&gt;                    bPPlus = true;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            if (!bPPlus)&lt;br /&gt;            {&lt;br /&gt;                GetPPlusAbsenceData();&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show("Please close P+ before refreshing the P+ data!", "Close P+", MessageBoxButtons.OK, MessageBoxIcon.Warning);&lt;br /&gt;            }&lt;br /&gt;            return bPPlus;&lt;br /&gt;        }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-9190770318289934323?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/9190770318289934323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=9190770318289934323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/9190770318289934323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/9190770318289934323'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/10/check-if-instance-of-another-app-is.html' title='Check if an instance of another app is open'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-369915535282468032</id><published>2008-10-09T13:07:00.004+01:00</published><updated>2008-10-09T13:13:32.510+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='mutex'/><title type='text'>Stop multiple instances of your windows app running</title><content type='html'>I needed to stop users from starting up more than one copy of the MyTime app running and I found this &lt;a href="http://joelbennett.wordpress.com/2007/04/14/using-a-mutex-to-prevent-multiple-copies-of-an-application-from-runningc/"&gt;link &lt;/a&gt;to help. &lt;br /&gt;&lt;br /&gt;I changed where the code actually runs, I think its a bit better this way.&lt;br /&gt;&lt;br /&gt;1. Open up the Program.cs file.&lt;br /&gt;&lt;br /&gt;2. Add System.Threading into the using list.&lt;br /&gt;&lt;br /&gt;3. Paste this in the class declaration&lt;br /&gt;        private static Mutex mutex;&lt;br /&gt;        private static string mutexName = "MyTime.Mutex";&lt;br /&gt;&lt;br /&gt;4. Paste this in the main() method before any other code runs.&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                mutex = Mutex.OpenExisting(mutexName);&lt;br /&gt;&lt;br /&gt;                //since it hasn’t thrown an exception, then we already have one copy of the app open.&lt;br /&gt;                MessageBox.Show("A copy of MyTime is already open.",&lt;br /&gt;                "MyTime", MessageBoxButtons.OK, MessageBoxIcon.Information);&lt;br /&gt;&lt;br /&gt;                //use this command as we haven't called the run method of the application&lt;br /&gt;                Environment.Exit(0);&lt;br /&gt;            }&lt;br /&gt;            catch&lt;br /&gt;            {&lt;br /&gt;                //since we didn’t find a mutex with that name, create one&lt;br /&gt;                mutex = new Mutex(true, mutexName);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            //Hook up the Application Exit event to release the mutex so that the app can re-open correctly.&lt;br /&gt;            Application.ApplicationExit += new EventHandler(delegate { mutex.ReleaseMutex(); });&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. Thats it. Test it!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Don't think there is much else to this. Any questions let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-369915535282468032?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/369915535282468032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=369915535282468032' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/369915535282468032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/369915535282468032'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/10/stop-multiple-instances-of-your-windows.html' title='Stop multiple instances of your windows app running'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-2573998640480271265</id><published>2008-09-30T23:49:00.001+01:00</published><updated>2008-09-30T23:50:58.828+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='slow operations'/><category scheme='http://www.blogger.com/atom/ns#' term='windows forms'/><category scheme='http://www.blogger.com/atom/ns#' term='threads'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Background Worker Class</title><content type='html'>&lt;p&gt;When running an operation that takes a long time the UI can freeze, to avoid this you can run the operation in a new Thread.  With .NET 2.0 you can use the BackgroundWorker class to do this easily (in Windows Applications).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;You can either drag and drop the BackgroundWorker component onto your form or instantiate it through code.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;The BackgroundWorker class has 3 events; DoWork, ProgressChanged and RunWorkerCompleted.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Add the code for the operation to be carried out into the &lt;span &gt;DoWork&lt;/span&gt; event handler.  If the BackgroundWorker is to report progress, handle the ProgressChanged event and add any code to be carried out upon completion of the operation in the RunWorkerCompleted event.&lt;br /&gt;To start the operation call the RunWorkerAsync(); method.  The operation can be cancelled by calling the CancelAsync(); method, only if the WorkerSupportsCancellation property is True.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-2573998640480271265?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/2573998640480271265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=2573998640480271265' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2573998640480271265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2573998640480271265'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/09/background-worker-class.html' title='Background Worker Class'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-8291847588340983696</id><published>2008-09-18T08:57:00.052+01:00</published><updated>2008-09-19T10:39:46.874+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enum'/><category scheme='http://www.blogger.com/atom/ns#' term='List Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Enumerator'/><title type='text'>List Control using an Enumerator</title><content type='html'>&lt;div&gt;Drop down using an enumerator as the datsource.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//Assuming an Enum is defined elsewhere as&lt;br /&gt;public enum PriorityType { VeryLow = 1, Low = 2, Medium = 3, High = 4, VeryHigh = 5 };&lt;br /&gt;&lt;br /&gt;//Can hook up names to a List Control&lt;br /&gt;ddlPriorityType.DataSource = Enum.GetNames(typeof(PriorityType));&lt;br /&gt;&lt;br /&gt;//Can set value of List Control&lt;br /&gt;ddlPriorityType.SelectedItem = Enum.GetName(typeof(PriorityType), product.PriorityType);&lt;br /&gt;&lt;br /&gt;//Can then get the selected value using the parse method and casting the result as an int&lt;br /&gt;((int)Enum.Parse(typeof(PriorityType), ddlPriorityType.SelectedItem.ToString(), true)).ToString();&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-8291847588340983696?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/8291847588340983696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=8291847588340983696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8291847588340983696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8291847588340983696'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/09/list-control-using-enumerator.html' title='List Control using an Enumerator'/><author><name>Naga</name><uri>http://www.blogger.com/profile/02975073956057878041</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-7070854394727768356</id><published>2008-09-18T08:57:00.051+01:00</published><updated>2008-09-19T10:38:46.109+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='deploying'/><category scheme='http://www.blogger.com/atom/ns#' term='Infragistics'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><title type='text'>Infragistics problem when deploying asp.NET app</title><content type='html'>Document title:&lt;br /&gt;Infragistics problem when deploying asp.NET app&lt;br /&gt;What is it?&lt;br /&gt;&lt;br /&gt;When deploying an Asp.NET app to the server you need to make a few changes to the web.config file and make sure you have the correct dll files in order for it to run correctly.&lt;br /&gt;&lt;br /&gt;For every Infragistics control that you use in the application, move over the corresponding dll file from c:\Program Files\Infragistics\NetAdvantage 2004 Volume 3\ASP.NET\bin on local machine into bin folder in application folder on server.&lt;br /&gt;&lt;br /&gt;You also need to change the web.config file if the Infragistics version on the server is different than the one you are developing with.&lt;br /&gt;&lt;br /&gt;To find out which version the server is running:&lt;br /&gt;· Go to webapps folder on server then Infragistics\20043\Scripts.&lt;br /&gt;· Open any of the .js files in this folder and the comments at the top tell you which version.&lt;br /&gt;· Currently all servers have version 4.3.20043.27.&lt;br /&gt;&lt;br /&gt;To add new version for your app:&lt;br /&gt;· Inside applications folder on web server add a folder called Scripts.&lt;br /&gt;· Copy all .js files from C:\Inetpub\wwwroot\aspnet_client\infragistics\20043\Scripts on local computer into the new scripts folder.&lt;br /&gt;&lt;br /&gt;Sometimes need to add new location for infragistics images, appears to be no rhyme or reason for this but if all images are appearing blank on server then it’s needed.&lt;br /&gt;&lt;br /&gt;To add the new infragistics images location for app:&lt;br /&gt;· Inside applications folder on web server add a folder called InfragisticsImages.&lt;br /&gt;· Copy contents of C:\Inetpub\wwwroot\aspnet_client\infragistics\Images on local computer into the new InfragisticsImages folder.&lt;br /&gt;&lt;br /&gt;Finally in the web.config add:&lt;br /&gt;· At the top of the web.config file add a &lt;configsections&gt;tag. Could already be there as this is the same tag that ExceptionManagement section is entered into.&lt;br /&gt;· Inside the &lt;configsections&gt;tag add: &lt;section type="System.Configuration.SingleTagSectionHandler,System,Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="infragistics.web"&gt;this tells the XML to register a new tag called &lt;infragistics.web&gt;&lt;br /&gt;· Underneath the close of the &lt;configsections&gt;tag add: &lt;infragistics.web javascriptdirectory="~/Scripts" imagedirectory="~/InfragisticsImages/"&gt;&lt;/infragistics.web&gt;this tells the XML where to find new scripts and image directories.&lt;br /&gt;&lt;br /&gt;Sample web.config file with this added on following pages.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_TSMEXHk6Cl4/SNIldWG5FGI/AAAAAAAAAB0/qckbq0IWKNs/s1600-h/xml.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247297701920969826" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://3.bp.blogspot.com/_TSMEXHk6Cl4/SNIldWG5FGI/AAAAAAAAAB0/qckbq0IWKNs/s320/xml.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIlnYBHVXI/AAAAAAAAAB8/80olyweCkf0/s1600-h/xml2.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247297874232300914" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIlnYBHVXI/AAAAAAAAAB8/80olyweCkf0/s320/xml2.bmp" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/configsections&gt;&lt;/infragistics.web&gt;&lt;/section&gt;&lt;/configsections&gt;&lt;/configsections&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-7070854394727768356?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/7070854394727768356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=7070854394727768356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/7070854394727768356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/7070854394727768356'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/09/infragistics-problem-when-deploying.html' title='Infragistics problem when deploying asp.NET app'/><author><name>Naga</name><uri>http://www.blogger.com/profile/02975073956057878041</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_TSMEXHk6Cl4/SNIldWG5FGI/AAAAAAAAAB0/qckbq0IWKNs/s72-c/xml.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-1813919823365561251</id><published>2008-09-18T08:57:00.050+01:00</published><updated>2008-09-19T10:38:11.596+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ReportViewer'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><title type='text'>Report Viewer in .Net App</title><content type='html'>Weekly Interest Topic&lt;br /&gt;Report Viewer in .Net App&lt;br /&gt;Date Created/Revised&lt;br /&gt;July 2006&lt;br /&gt;Owner: Martin Dearie&lt;br /&gt;Why did you look into this?&lt;br /&gt;&lt;br /&gt;I am currently developing an application that requires a report to be run within the main process flow of the application.&lt;br /&gt;Using a link to a report in Report Manager would take the user outside of the control of the application, this is not acceptable in this application and another solution must be found.&lt;br /&gt;&lt;br /&gt;Since we have moved to Crystal I had to find a way to integrate this type of report into my application.&lt;br /&gt;&lt;br /&gt;What did you find out?&lt;br /&gt;&lt;br /&gt;Once in Visual Studio from the Toolbox, open the Crystal Reports node to locate the CrystalReportViewer control.&lt;br /&gt;&lt;br /&gt;Drag the CrystalReportViewer control onto the Web Form. The “CrystalReportViewer Tasks” Smart Task panel opens.&lt;br /&gt;&lt;br /&gt;On the upper-right corner of the CrystalReportViewer control, click the small triangular button.&lt;br /&gt;&lt;br /&gt;Click the Choose Report Source list and select &lt;new&gt;.&lt;br /&gt;&lt;br /&gt;The Create ReportSource dialog box opens.&lt;br /&gt;&lt;br /&gt;Click the Specify a report for the CrystalReportSource control list and select &lt;browse&gt;&lt;br /&gt;&lt;br /&gt;Click Ok&lt;br /&gt;&lt;br /&gt;Where did you find this out?&lt;br /&gt;&lt;br /&gt;This information was taken from the Crystal Reports For Visual Studio 2005 .pdf&lt;br /&gt;&lt;br /&gt;Other information&lt;/browse&gt;&lt;/new&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-1813919823365561251?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/1813919823365561251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=1813919823365561251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/1813919823365561251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/1813919823365561251'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/09/report-viewer-in-net-app.html' title='Report Viewer in .Net App'/><author><name>Naga</name><uri>http://www.blogger.com/profile/02975073956057878041</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-2321116946194880325</id><published>2008-09-18T08:57:00.049+01:00</published><updated>2008-09-19T10:38:03.565+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Date Format'/><category scheme='http://www.blogger.com/atom/ns#' term='Crystal'/><title type='text'>Crystal Reports Viewer Version 9 and 11</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIQzEmEYoI/AAAAAAAAAAM/pCCl4_MCrD0/s1600-h/clip_image002.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247274985432834690" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIQzEmEYoI/AAAAAAAAAAM/pCCl4_MCrD0/s320/clip_image002.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Crystal Reports Viewer Version 9 and 11 – Date Formats&lt;br /&gt;&lt;br /&gt;If Crystal Report Viewer Version 11 is used with reports on Crystal Reports 9 do not make a change to the dates in the sp. Change the date format in the report as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;If you change it at the sp you will get the following error message when you run it in the viewer: &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIRwrF5tnI/AAAAAAAAAAU/1Q3CC5S5N2o/s1600-h/clip_image002.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247276043738920562" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIRwrF5tnI/AAAAAAAAAAU/1Q3CC5S5N2o/s320/clip_image002.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-2321116946194880325?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/2321116946194880325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=2321116946194880325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2321116946194880325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2321116946194880325'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/09/crystal-reports-viewer-version-9-and-11.html' title='Crystal Reports Viewer Version 9 and 11'/><author><name>Naga</name><uri>http://www.blogger.com/profile/02975073956057878041</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIQzEmEYoI/AAAAAAAAAAM/pCCl4_MCrD0/s72-c/clip_image002.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-32885238297314501</id><published>2008-09-18T08:57:00.048+01:00</published><updated>2008-09-19T10:37:54.467+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UDF'/><category scheme='http://www.blogger.com/atom/ns#' term='User Defined Function'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2000'/><category scheme='http://www.blogger.com/atom/ns#' term='Cross Server'/><title type='text'>How to access UDF across Servers</title><content type='html'>&lt;div&gt;How to access UDF across servers!&lt;br /&gt;&lt;br /&gt;It seems that this is not possible by using the standard server linkage: ServerName.db.dbo.&lt;br /&gt;&lt;br /&gt;This is because you cant qualify the server in a UDF. However to get round this the UDF can be called from the remote server using in sp_executesql.&lt;br /&gt;&lt;br /&gt;It is also possible to create a SP on the remote server to handle the call. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-32885238297314501?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/32885238297314501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=32885238297314501' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/32885238297314501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/32885238297314501'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/09/how-to-access-udf-across-servers.html' title='How to access UDF across Servers'/><author><name>Naga</name><uri>http://www.blogger.com/profile/02975073956057878041</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-4771692076705388517</id><published>2008-09-18T08:57:00.047+01:00</published><updated>2008-09-19T10:37:43.422+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parameters'/><category scheme='http://www.blogger.com/atom/ns#' term='Crystal'/><category scheme='http://www.blogger.com/atom/ns#' term='Subreport'/><title type='text'>Linking Parameters for Sub Reports in Crystal</title><content type='html'>&lt;div&gt;Document title:&lt;br /&gt;&lt;div&gt;Linking Parameters for Sub Reports in Crystal&lt;br /&gt;Date Created/Revised&lt;br /&gt;Oct 2006&lt;br /&gt;Owner:Martin Dearie&lt;br /&gt;What is it?&lt;br /&gt;&lt;br /&gt;To link parameters for a sub-report(s) in Crystal: Right click the sub-report and click on Change Sub Report Links. Now you will be presented with a box like this.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIUcIUw1wI/AAAAAAAAAAc/l80Id7Rl7PE/s1600-h/clip_image002.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247278989343512322" style="margin: 0px 10px 10px 0px; float: left; width: 438px; height: 218px;" alt="" src="http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIUcIUw1wI/AAAAAAAAAAc/l80Id7Rl7PE/s320/clip_image002.jpg" width="668" border="0" height="218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;In the Available Fields box you should highlight the common parameter and click ‘&gt;’ to insert it into the Fields(s) to link to box. Once it has been selected you can now select “?Pm-?@IN_FieldName”. No further information is needed.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-4771692076705388517?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/4771692076705388517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=4771692076705388517' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4771692076705388517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4771692076705388517'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/09/linking-parameters-for-sub-reports-in.html' title='Linking Parameters for Sub Reports in Crystal'/><author><name>Naga</name><uri>http://www.blogger.com/profile/02975073956057878041</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIUcIUw1wI/AAAAAAAAAAc/l80Id7Rl7PE/s72-c/clip_image002.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-7532662689547398371</id><published>2008-09-18T08:57:00.046+01:00</published><updated>2008-09-19T10:37:29.609+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ReportViewer'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><title type='text'>Report Viewer in .Net App</title><content type='html'>Weekly Interest Topic&lt;br /&gt;Report Viewer in .Net App&lt;br /&gt;Date Created/Revised&lt;br /&gt;Feb 2006&lt;br /&gt;Owner: Joanne Conway&lt;br /&gt;Why did you look into this?&lt;br /&gt;&lt;br /&gt;I am currently developing an application that requires a report to be run within the main process flow of the application.&lt;br /&gt;Using a link to a report in Report Manager would take the user outside of the control of the application, this is not acceptable in this application and another solution must be found.&lt;br /&gt;&lt;br /&gt;Since we have moved to MS Reporting Services I had to find a way to integrate this type of report into my application.&lt;br /&gt;&lt;br /&gt;What did you find out?&lt;br /&gt;&lt;br /&gt;Microsoft have deployed a sample Report Viewer control in the samples directory of reporting service. This is a Server Control which uses URL access to render reports within a web browser.&lt;br /&gt;&lt;br /&gt;The control is installed under C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\Samples\Applications\ReportViewer \cs.&lt;br /&gt;&lt;br /&gt;A Dll is created once the above application is has been deployed which can then be used within any application.&lt;br /&gt;&lt;br /&gt;Where did you find this out?&lt;br /&gt;&lt;br /&gt;There are lots of documents available on the internet and I have attached the file I used to this document.&lt;br /&gt;&lt;br /&gt;Other information&lt;br /&gt;Useful code:&lt;br /&gt;&lt;br /&gt;Set the Server URL :&lt;br /&gt;ReportViewer1.ServerUrl = "http://dcSQL2/reportserver";&lt;br /&gt;&lt;br /&gt;Set the Report Path :&lt;br /&gt;ReportViewer1.ReportPath =&lt;br /&gt;"/ICT/Application Reports/Purchase Order Register/Purchase Order" ;&lt;br /&gt;&lt;br /&gt;Pass in parameter:&lt;br /&gt;ReportViewer1.SetQueryParameter("IN_PurchaseOrderId",Session["PurchaseOrderid"].ToString());&lt;br /&gt;&lt;br /&gt;Rendering format can be set within the report viewer properties&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;Creating Reports with SQL Reporting Service and Visual Studio .NETBy &lt;a href="http://www.codeproject.com/script/profile/whos_who.asp?id=139091"&gt;Akram Hussein&lt;/a&gt;&lt;br /&gt;Introduction&lt;br /&gt;The following article will give you a quick start on how to use the new reporting service of Microsoft inside your ASP.NET Application. It is relatively very easy to use reporting services, however it is a bit different from what we are used to in Crystal reports.&lt;br /&gt;Background&lt;br /&gt;Reporting service is basically a reporting server that uses SQL server as its backend database, all reports are deployed on the reporting server and from their you can access any reports you have access rights to. The basic idea is to have a single location where all reports are deployed, and provides a single point of access, this created a very flexible environment to deploy your reports over the enterprise. The idea is a very similar to Crystal Reports Enterprise Reporting.&lt;br /&gt;Requirements:&lt;br /&gt;You will need the following tools before installing the reporting service, those tools are needed for development of reports for deployment you will need exactly the same environment without Visual Studio .NET&lt;br /&gt;SQL Server 2000 with SP3&lt;br /&gt;IIS 5.0 or 6.0&lt;br /&gt;Visual Studio .NET&lt;br /&gt;Accessing Report Server Management Interface:&lt;br /&gt;You can start by accessing your reporting service by going to &lt;a href="http://localhost/reports"&gt;http://localhost/reports&lt;/a&gt; this is where you can manage your reporting service. You can view reports and other information directly from this web interface, manage subscriptions, security, data sources and other. Mostly we won’t be using it in this article except for viewing reports.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIV204pj2I/AAAAAAAAAAk/YeAbneqkHaw/s1600-h/clip_image001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247280547493416802" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIV204pj2I/AAAAAAAAAAk/YeAbneqkHaw/s320/clip_image001.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;The Reporting Service Web Management provides browsing folders that contain reports, data source names that you have deployed. This tool provides viewing of reports, however for developing reports you must have Visual Studio .NET&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_TSMEXHk6Cl4/SNIWPj8AZZI/AAAAAAAAAAs/vwAG5PrFMyc/s1600-h/clip_image001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247280972440823186" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://3.bp.blogspot.com/_TSMEXHk6Cl4/SNIWPj8AZZI/AAAAAAAAAAs/vwAG5PrFMyc/s320/clip_image001.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;The above figure shows the report server windows service, as you can see it must be running to be able to access, view and deploy reports from your development tool&lt;br /&gt;As I write this article I heard from Microsoft that they have bought a tool that can provide creating reports directly from the reporting service web interface, I do not have any information when it will be released but hopefully soon.&lt;br /&gt;Developing Your Own Reports&lt;br /&gt;1. Creating Your First Report&lt;br /&gt;First you create a new project, and select Report Project this will create a reporting service project. From here you will find two folders shared data sources, and reports. Shared data sources is one very interesting feature, this is where your data source for your reports. You can have more than 1 shared data source or even a single data source for every report, however it wouldn’t be a good idea to repeat the same data source twice if you are using the same database.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIW6jVNC8I/AAAAAAAAAA0/gkGrcPHpqGE/s1600-h/clip_image001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247281711012449218" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIW6jVNC8I/AAAAAAAAAA0/gkGrcPHpqGE/s320/clip_image001.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;2. Creating a Shared Data Source&lt;br /&gt;Here just create a shared data source selecting your SQL server, Northwind database, we will be using basically the Northwind database to build a very simple report to list all our customers.&lt;br /&gt;3. Selecting Data&lt;br /&gt;Before selecting the data for your report, just click on new report and choose the wizard, it will take you step by step. First select the data source that you have just created, then select the table, choose any table you like, in this example I chose the customer table. Then select tabular, and then select all data fields into the detail list box. After you are done, go to the Data Tab of your report you will find table customer, with all fields select here you can alter the table or fields you want to select in your report, just as you are used to when creating a view in SQL Server.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIXwHXzt2I/AAAAAAAAAA8/zP8SCx_xbIo/s1600-h/clip_image001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247282631220115298" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIXwHXzt2I/AAAAAAAAAA8/zP8SCx_xbIo/s320/clip_image001.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;4. Selecting Design&lt;br /&gt;After you are done selecting the data go to, report designer select the layout tab in your report, as you can see in the left toolbox you can use any of the report control to enhance your report functionality and design. You can include charts, images, matrix, etc.. after you’re done lets preview the report.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIYtCD7ZKI/AAAAAAAAABE/PHIxTAkG6bc/s1600-h/clip_image001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247283677766575266" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIYtCD7ZKI/AAAAAAAAABE/PHIxTAkG6bc/s320/clip_image001.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;5. Previewing Report&lt;br /&gt;One of the features I love about the reporting service, is the ability to preview your report before deployment, here you can view your report as if you are in the deployment environment.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_TSMEXHk6Cl4/SNIaAHRNRyI/AAAAAAAAABM/2X6Hm0Qm7Vw/s1600-h/clip_image001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247285105093592866" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://2.bp.blogspot.com/_TSMEXHk6Cl4/SNIaAHRNRyI/AAAAAAAAABM/2X6Hm0Qm7Vw/s320/clip_image001.jpg" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIYtCD7ZKI/AAAAAAAAABE/PHIxTAkG6bc/s1600-h/clip_image001.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;6. Deploying Report on Report Service&lt;br /&gt;The deployment part is tricky now, you do not just include a reporting customer control in your ASP.NET page and that’s it, well you have to first deploy them on your reporting service Server. Ok now as we said all your reports are developed on Visual Studio .NET then they are deploying to a reporting server, either on your machine, intranet, or internet anywhere you want them as long you have access rights to that reporting server. To start deployment right click your application and select properties, the following window will appear. You will find the property “OverwriteDataSources” to be false, make it to true, then select the target folder, this can be anything you like. Then enter the location of your reporting server here it is localhost however it can be a domain, IP address or any location you want as long as reporting service is installed to it. After you are done press F5 or right click the project and select deploy, the minute this is done your reports are deployed on your reporting server.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_TSMEXHk6Cl4/SNIgDDyBzxI/AAAAAAAAABU/QaUxJoCkWOc/s1600-h/clip_image001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247291752766885650" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://2.bp.blogspot.com/_TSMEXHk6Cl4/SNIgDDyBzxI/AAAAAAAAABU/QaUxJoCkWOc/s320/clip_image001.jpg" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIYtCD7ZKI/AAAAAAAAABE/PHIxTAkG6bc/s1600-h/clip_image001.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;7. Viewing Report from Report Service&lt;br /&gt;As I said now your report is deployed on the reporting server you can access it directly by going to &lt;a href="http://localhost/reports"&gt;http://localhost/reports&lt;/a&gt; , select the folder you installed the report in then select your report. The report should appear like the one shown below:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_TSMEXHk6Cl4/SNIgf14Pc1I/AAAAAAAAABc/hLFBh6O4vB0/s1600-h/clip_image001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247292247251055442" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://3.bp.blogspot.com/_TSMEXHk6Cl4/SNIgf14Pc1I/AAAAAAAAABc/hLFBh6O4vB0/s320/clip_image001.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;8. Including ReportViewer Custom Control in your ASP.NET Application&lt;br /&gt;Now the tricky part on how to include this report in your ASP.NET application, here you will need to use a custom control however, Microsoft does not provide a custom control like crystal report viewer custom control, in fact you will find it deployed in the samples directory of Reporting service. The custom control is located at&lt;br /&gt;C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\Samples\Applications\ReportViewer&lt;br /&gt;You can just go and open that project and compile it and use the ReportViewer DLL in your ASP.NET application. This can be done by opening your toolbox, then click Add/remove and click browse and select the ReportViewer.DLL I included the source and the DLL in the source in case you cannot find it or you didn’t install the sample applications of reporting service. Anyway after selecting the DLL you have to select the custom control from the list as shown below:&lt;br /&gt;You will find the name of the Custom Control ReportViewer “Microsoft Sample Report Viewer Application”&lt;br /&gt;When you are done, just include the custom control in your ASP.NET page and change the following properties. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First you have to select the report path and this should be something like :- My Reports/Report1 - exactly the sample folder you deployed your reports in.&lt;br /&gt;Second you have to edit the ServerURL and here you enter your reporting service location &lt;a href="http://localhost/reportserver/"&gt;http://localhost/reportserver/&lt;/a&gt; this is the reporting server location, while /reports is the report server web management so take care not to get mixed up.&lt;br /&gt;Once both are done, you can start viewing your report by accessing your ASP.NET web page.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIiC7nthEI/AAAAAAAAABk/xUjxMC0rl18/s1600-h/clip_image001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247293949599384642" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIiC7nthEI/AAAAAAAAABk/xUjxMC0rl18/s320/clip_image001.jpg" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIYtCD7ZKI/AAAAAAAAABE/PHIxTAkG6bc/s1600-h/clip_image001.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIYtCD7ZKI/AAAAAAAAABE/PHIxTAkG6bc/s1600-h/clip_image001.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;9. Viewing your ASP.NET Application, including your Report&lt;br /&gt;Now enter the location of your web application and choose the asp.net page that contains the custom control, and bingo here you find your report as shown below. See how easy&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIis70BMxI/AAAAAAAAABs/X_Z9Gm1VoLI/s1600-h/clip_image001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247294671205511954" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIis70BMxI/AAAAAAAAABs/X_Z9Gm1VoLI/s320/clip_image001.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;Conclusion&lt;br /&gt;Now you can create as much reports as you want and use the custom control to view them by just changing their reportpath this can be done at runtime.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIYtCD7ZKI/AAAAAAAAABE/PHIxTAkG6bc/s1600-h/clip_image001.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIYtCD7ZKI/AAAAAAAAABE/PHIxTAkG6bc/s1600-h/clip_image001.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIYtCD7ZKI/AAAAAAAAABE/PHIxTAkG6bc/s1600-h/clip_image001.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_TSMEXHk6Cl4/SNIYtCD7ZKI/AAAAAAAAABE/PHIxTAkG6bc/s1600-h/clip_image001.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-7532662689547398371?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/7532662689547398371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=7532662689547398371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/7532662689547398371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/7532662689547398371'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/09/report-viewer-in-net-app_18.html' title='Report Viewer in .Net App'/><author><name>Naga</name><uri>http://www.blogger.com/profile/02975073956057878041</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_TSMEXHk6Cl4/SNIV204pj2I/AAAAAAAAAAk/YeAbneqkHaw/s72-c/clip_image001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-1871151527908753337</id><published>2008-09-17T10:49:00.000+01:00</published><updated>2008-09-17T10:50:43.068+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='visual studio 2008'/><title type='text'>Visual Studio 2008 Interesting features</title><content type='html'>Visual Studio 2008&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;JavaScript Features&lt;br /&gt;&lt;br /&gt;JavaScript support in Visual Studio 2008 has been greatly increase and now has intellisense similar to C# coding. It also allows us to debug our JavaScript by the user of breakpoints and stepping through code. This will be a huge benefit to the team as we can leverage our existing debugging skill set at the web presentation layer of our applications.&lt;br /&gt;&lt;br /&gt;LINQ (VS 2008)&lt;br /&gt;LINQ in Visual Studio 2008 provides standard development syntax for accessing data, regardless of where the data resides. For example, the same syntax can access either SQL Server or XML data. LINQ is used rather than TSQL inside the application language, such as C# or VB.&lt;br /&gt;Entity Data Services&lt;br /&gt;ADO.NET Data services in the 3.5 version of the .Net framework now allows for high level business objects to be created, such as Customers or Parts. These entities can be used rather than the standard method of returning individual rows and tables. If you’re using E-R (entity relationship) modelling, your objects in SQL will now match your modelling. There are several new ADO.NET frameworks that can access these entities such as the Line-of-Business (LOB) framework and the Entity Query Language (eSQL).&lt;br /&gt;Image Library&lt;br /&gt;&lt;br /&gt;Visual Studio now contains standardised images from Windows, Office and other Microsoft software to keep your software consistent with Microsoft. This will give our application a familiar look other Microsoft products and look very professional in a commercial environment.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Plug-ins&lt;br /&gt;&lt;br /&gt;Visual Studio 2008 extends the ability to create plug in tools for the IDE. Plug-ins are not something that we as a department will develop, however there are a greater number of plug-ins to increase our productivity available on the web. For instance the Class Builder wizard plug-in reduced the amount of code for new classes. There are a number of these that are available for free.&lt;br /&gt;&lt;br /&gt;Unit testing&lt;br /&gt;&lt;br /&gt;Visual Studio 2008 ships with a built in unit testing that allow use to build on our existing testing skills. Currently we use an added tool, NUnit, to perform automated testing. With 2008 we will have another tool at our disposal to increase the options we have when it comes to the testing of our applications.&lt;br /&gt;&lt;br /&gt;Visual SourceSafe&lt;br /&gt;&lt;br /&gt;We currently use the 2005 version of this software. Visual Studio 2008 requires an update to be compatible with VS2008. This currently available for download from the Microsoft web site and will not require a license upgrade for Visual SourceSafe&lt;br /&gt;Link:&lt;br /&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=8a1a68d8-db11-417c-91ad-02aab484776b&amp;amp;displaylang=en&lt;br /&gt;&lt;br /&gt;Improved HTML and CSS features&lt;br /&gt;&lt;br /&gt;The latest version of Visual Studio provides a split view when developing the HTML presentation layer page. We can now view the HTML alongside the design view, removing the time spent swapping between views to see how our changes have affected the look of the page.&lt;br /&gt;&lt;br /&gt;There is also a CSS Style manger that increases the support for CSS in Visual Studio and also provides intellisense. There are also a few very useful tools to help the developer use CSS. This is a relatively new area for the team and these new supporting tools will be great help in an area where we are currently lacking.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Code editing enhancements&lt;br /&gt;&lt;br /&gt;Visual Studio 2008 provides many enhancements to the code edit in C# files. It provide the developer with a hot key(CTRL) to make the intelisense transparent to avoid hiding the code we are currently working, this was a really frustrating problem in the older versions.&lt;br /&gt;&lt;br /&gt;There is also improved refactoring tools and one of the interesting ones checks what “Using” statements are need in a class file removing any unnecessary ones. This will reduce the file size if we have links to code libraries we don’t require.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Migration Options&lt;br /&gt;Visual Studio 2008 provides Multi-Targeting Support. This means that a developer can develop applications in versions 2.0, 3.0 and 3.5. This allows us to deploy applications to machines without the latest framework installs.&lt;br /&gt;&lt;br /&gt;As with previous version of Visual Studio, 2008 provides us with a Project upgrade tool to import older projects.&lt;br /&gt;&lt;br /&gt;As Visual Studio is only development tool and not installed on a server there are no issues in regards to older applications. It will simply allow us to take advantage of the latest tools in the IDE to improve our productivity and ultimately the quality and security of our final products.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-1871151527908753337?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/1871151527908753337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=1871151527908753337' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/1871151527908753337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/1871151527908753337'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/09/visual-studio-2008-interesting-features.html' title='Visual Studio 2008 Interesting features'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-8600560052366028597</id><published>2008-09-17T10:48:00.000+01:00</published><updated>2008-09-17T10:49:45.402+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2000'/><title type='text'>SQL Server 2008 Interesting features</title><content type='html'>SQL Server 2008&lt;br /&gt;&lt;br /&gt;Reporting Services&lt;br /&gt;&lt;br /&gt;Memory management in SQL Server 2008 Reporting Service is improved. So running large reports will not consume all available memory. In addition, report rendering has more consistency than before.&lt;br /&gt;&lt;br /&gt;Encryption&lt;br /&gt;&lt;br /&gt;Transparent Data Encryption: the SQL engine encrypts the entire database e.g. all data, log files, Indexes and Tables. Changes to programming applications are not required.&lt;br /&gt;&lt;br /&gt;Backup Encryption: Enables encryption of backups to prevent data disclosure or tampering. It can place limitations on the users who are able to restore backups.&lt;br /&gt;&lt;br /&gt;External Key Management: Used for involvement with credit card processing or payment card industry compliance. It supports third party Hardware Security Modules used to store keys in a location separate from the data they protect.&lt;br /&gt;&lt;br /&gt;Auditing&lt;br /&gt;&lt;br /&gt;In addition to the standard auditing of logon/logoffs and permission changes SQL 2008 allows for monitoring of data changes or access. It is configured in TSQL Statements - AUDIT UPDATE(Salary) ON Employee TO MyAuditFolder WHERE Salary&gt;200000&lt;br /&gt;&lt;br /&gt;Data Compression&lt;br /&gt;&lt;br /&gt;Usually, data compression is associated with general hard disk savings, and with smaller physical files, backup times are reduced. While this holds true for SQL Server Data Compression, the main goal is Fact Table size reduction. The stated advantages for Data Compression include the following:&lt;br /&gt;&lt;br /&gt;    * Improves query performance by reducing I/O and increasing buffer-hit rates&lt;br /&gt;    * Provides compression ratios of 2X to 7X for real DW fact data&lt;br /&gt;    * Is available for both data and indexes&lt;br /&gt;&lt;br /&gt;According to Microsoft, while using compression will slightly increase CPU usage, overall system performance will be improved because of less IO.&lt;br /&gt;&lt;br /&gt;Resource Governor&lt;br /&gt;&lt;br /&gt;New in SQL Server 2008 is the Resource Governor. The Governor is used to restrict users or groups of users from consuming high levels of resources. Items that can be monitored include CPU bandwidth, timeout waits, execution times, blocking times, and idle times. If a Resource Governor Threshold level is reached, the system can trigger an event or stop the process.&lt;br /&gt;&lt;br /&gt;Performance Data&lt;br /&gt;&lt;br /&gt;New in SQL Server 2008 is the Performance Studio. The Studio is a collection of performance tools. Together they can be used for monitoring, troubleshooting, tuning and reporting. The Data Collector component of the studio is configurable and low overhead. It supports several colleting methods including TSQL queries, SQL Trace, and Performance Counters. Data can also be collected programmatically. Once data is collected, there are drill-down and aggregate reporting options. Microsoft lists these six client side features of the Performance Studio:&lt;br /&gt;&lt;br /&gt;    * SQL Server dashboard&lt;br /&gt;    * Performance monitoring&lt;br /&gt;    * Current and historical data analysis&lt;br /&gt;    * Data collection sets-based reports&lt;br /&gt;&lt;br /&gt;Entity Data Services&lt;br /&gt;&lt;br /&gt;SQL Server 2008 and ADO.NET now allow for high level business objects to be created, such as Customers or Parts. These entities can be used rather than the standard method of returning individual rows and tables. If you’re using E-R (entity relationship) modeling, your objects in SQL will now match your modeling. There are several new ADO.NET frameworks that can access these entities such as the Line-of-Business (LOB) framework and the Entity Query Language (eSQL).&lt;br /&gt;&lt;br /&gt;Data Synchronizing Features&lt;br /&gt;&lt;br /&gt;The combination of SQL 2008, Visual Studio, and ADO.NET bring together new methods of creating synchronizing or frequently disconnected applications, making it easier to create client applications that synchronize with a central database. SQL 2005 started by providing support for change tracking by using triggers. SQL 2008 synchronizing is better integrated and optimized.&lt;br /&gt;&lt;br /&gt;Large UDT&lt;br /&gt;&lt;br /&gt;Previously, in SQL 2005, User Defined Types (UDT) could not be larger than 8,000 bytes. In SQL 2008 there is no longer any size restriction, allowing storage of very large UDTs.&lt;br /&gt;&lt;br /&gt;Dates and Times&lt;br /&gt;&lt;br /&gt;There are new Date and Time data types in SQL 2008.&lt;br /&gt;&lt;br /&gt;    * Date. This is a data type with a date only, no time.&lt;br /&gt;    * Time. A Time data type without a date component. Precision can be up to 100 nanoseconds.&lt;br /&gt;    * Date Time Offset. This data type will store a Universal Coordinated Time (UTC) time-zone aware value.&lt;br /&gt;&lt;br /&gt;File Stream&lt;br /&gt;&lt;br /&gt;The new data type VarBinary(Max) FileStream allows for a way to manipulate binary data using TSQL Select, Insert, Update, and Delete statements. In the past, to store binary data a BLOB, accessed by a Dot.Net application was typically used. Now, SQL functions such as triggers, Full Text Search, and backup restore can be applied to binary data.&lt;br /&gt;&lt;br /&gt;Spatial Data&lt;br /&gt;&lt;br /&gt;The new Spatial Data type allows Latitude, Longitude, and GPS-based data entries to be natively stored inside SQL Server. The data type conforms to several industry standards such as Open Geospatial Consortium (OGC) Simple Features for SQL and ISO 19125 Simple Feature Access.&lt;br /&gt;&lt;br /&gt;Table Value Parameters&lt;br /&gt;&lt;br /&gt;In previous versions of SQL Server, there wasn’t a native way to pass a table to a stored procedure. The usual workaround was to pass a large varchar or XML type and parse through it. Now, in SQL Server 2008, Table Parameters are available.&lt;br /&gt;&lt;br /&gt;Migration Options&lt;br /&gt;&lt;br /&gt;SQL Server 2008 provides migration tools to move databases created in previous versions of SQL Server into the new platform. This will allow us to easily upgrade our current databases. It also supports a side-by-side installation with older versions, allowing us to keep legacy databases running without the need to upgrade. However, this will not be an issue for us as our server architecture will include two new standalone SQL Server 2008 machines.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-8600560052366028597?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/8600560052366028597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=8600560052366028597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8600560052366028597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8600560052366028597'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/09/sql-server-2008-interesting-features.html' title='SQL Server 2008 Interesting features'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-4527136583990647320</id><published>2008-09-02T06:35:00.004+01:00</published><updated>2008-09-12T07:15:18.568+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Nullable Types</title><content type='html'>When using the System.Nullable&lt;t&gt; syntax you can substitute it for T?&lt;br /&gt;&lt;br /&gt;For example,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;System.&lt;/span&gt;&lt;span style="color: rgb(51, 153, 153);font-family:courier new;" &gt;Nullable&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;int&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&gt; intNullable;&lt;/span&gt; is the same as&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;int&lt;/span&gt;? intNullable;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/t&gt;If you have declared a non-nullable variable and are assigning it a value that could be null you can use the ?? syntax to give it a default value.  For example:&lt;t&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;int&lt;/span&gt;? intNullable = &lt;span style="color: rgb(51, 51, 255);"&gt;null&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;int &lt;/span&gt;intNotNullable = intNullable ?? 99;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/t&gt;Would give the &lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;/span&gt;intNotNullable &lt;/span&gt;variable a value of 99 in the event of &lt;span style="font-family:courier new;"&gt;intNullable &lt;/span&gt;being null.&lt;t&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/t&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-4527136583990647320?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/4527136583990647320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=4527136583990647320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4527136583990647320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4527136583990647320'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/09/nullable-types.html' title='Nullable Types'/><author><name>Donald</name><uri>http://www.blogger.com/profile/17320729941562373752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-7909813764801768988</id><published>2008-08-26T14:14:00.005+01:00</published><updated>2008-08-26T14:24:35.046+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='code generation'/><title type='text'>Creating custom item/project templates in Visual Studio</title><content type='html'>I found this &lt;a href="http://codebetter.com/blogs/david.hayden/archive/2005/11/06/134343.aspx"&gt;post&lt;/a&gt; explaining how to create custom templates in visual studio 2005.&lt;br /&gt;&lt;br /&gt;The process is quite simple.&lt;br /&gt;&lt;br /&gt;Once you have a form, class or whatever you want to create a template for select 'Export Template' from the file menu.&lt;br /&gt;&lt;br /&gt;There are various steps to follow and the option of creating a Project or Item template.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-7909813764801768988?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://codebetter.com/blogs/david.hayden/archive/2005/11/06/134343.aspx' title='Creating custom item/project templates in Visual Studio'/><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/7909813764801768988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=7909813764801768988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/7909813764801768988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/7909813764801768988'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/08/creating-custom-itemproject-templates.html' title='Creating custom item/project templates in Visual Studio'/><author><name>Andy</name><uri>http://www.blogger.com/profile/05946890717469547713</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-3671843933345855838</id><published>2008-08-20T10:44:00.002+01:00</published><updated>2008-08-26T14:24:52.080+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><title type='text'>Missing Visual Studio Project Templates</title><content type='html'>Works for both 2005 and 2008.&lt;br /&gt;&lt;br /&gt;To rebuild visual studio project templates:&lt;br /&gt;&lt;br /&gt;Open the Visual Studio Command Prompt and run the following:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;devenv /installvstemplates&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-3671843933345855838?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/3671843933345855838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=3671843933345855838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3671843933345855838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3671843933345855838'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/08/missing-visual-studio-project-templates.html' title='Missing Visual Studio Project Templates'/><author><name>Andy</name><uri>http://www.blogger.com/profile/05946890717469547713</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-6870521839270783722</id><published>2008-08-14T14:52:00.003+01:00</published><updated>2008-08-26T14:25:20.859+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project organization'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><title type='text'>Backpack - Project organization</title><content type='html'>Backpack&lt;br /&gt;&lt;br /&gt;Organize your business and share information with your team.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;To-dos, Announcements, Ideas, Files&lt;/strong&gt;&lt;br /&gt;Easily centralize &amp;amp; share information across your organization&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Keep a Group Calendar Online&lt;/strong&gt;&lt;br /&gt;Keep everyone's schedule online with a color-coded calendar&lt;br /&gt;&lt;br /&gt;Have a look at the homepage, it would be good when were in a project because you can share files, notes and a calander and see what everyone else is up to!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-6870521839270783722?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.backpackit.com/' title='Backpack - Project organization'/><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/6870521839270783722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=6870521839270783722' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/6870521839270783722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/6870521839270783722'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/08/backpack-project-organization.html' title='Backpack - Project organization'/><author><name>Andy</name><uri>http://www.blogger.com/profile/05946890717469547713</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-8474214971908717739</id><published>2008-08-07T13:45:00.002+01:00</published><updated>2008-08-07T13:49:02.813+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DateTimePicker'/><category scheme='http://www.blogger.com/atom/ns#' term='CustomFormat'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Set a DateTimePicker to Blank</title><content type='html'>If you have ever had problems setting the text of a datetimepicker to blank (rather than the default value) then the following code example is the way to do it:&lt;br /&gt;&lt;br /&gt;if (csMahService._EndDate.HasValue)&lt;br /&gt;{&lt;br /&gt;   dtpEndDate.Value = csMahService._EndDate.Value;&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;    dtpEndDate.CustomFormat = " ";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Note you have to set the Format property to Custom.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-8474214971908717739?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/8474214971908717739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=8474214971908717739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8474214971908717739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8474214971908717739'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/08/set-datetimepicker-to-blank.html' title='Set a DateTimePicker to Blank'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-1020415606807551942</id><published>2008-08-06T14:44:00.004+01:00</published><updated>2008-08-06T14:50:42.274+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TSQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2000'/><category scheme='http://www.blogger.com/atom/ns#' term='String'/><title type='text'>Format uppercase strings in SQL</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;A useful SQL function here. It was written for SQL Server 2000, but I'm sure it can be adapted for any other SQL technologies.&lt;br /&gt;&lt;br /&gt;It takes a string and changes it to be uppercase for the first char of every word and lower for the rest of it. E.g. "SQL IS GREAT FUN" becomes "Sql Is Great Fun".&lt;br /&gt;&lt;br /&gt;Not much else to say... here it is!&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION dbo.ReturnFormattedString(@IN_String varchar(1000))&lt;br /&gt;RETURNS varchar(1000) AS &lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;DECLARE&lt;br /&gt;    @NewValue VarChar(1000)&lt;br /&gt;,    @X int&lt;br /&gt;,    @NewWord bit&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SET @x = 1&lt;br /&gt;&lt;br /&gt;SET @NewWord = 1&lt;br /&gt;&lt;br /&gt;SET @NewValue = ''        &lt;br /&gt;WHILE (@x &lt;= Len(@IN_String))&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;    If (@NewWord = 1) and    (&lt;br /&gt;                    (ASCII(SUBSTRING(@IN_String, @x, 1)) &gt;= 97) and (ASCII(SUBSTRING(@IN_String, @x, 1)) &lt;= 122)&lt;br /&gt;                OR    (ASCII(SUBSTRING(@IN_String, @x, 1)) &gt;= 65) and (ASCII(SUBSTRING(@IN_String, @x, 1)) &lt;= 90)&lt;br /&gt;                )&lt;br /&gt;    begin&lt;br /&gt;       &lt;br /&gt;        if (ASCII(SUBSTRING(@IN_String, @x, 1)) &gt;= 97) and (ASCII(SUBSTRING(@IN_String, @x, 1)) &lt;= 122)&lt;br /&gt;            SET @NewValue = @NewValue + Char(ASCII(SUBSTRING(@IN_String, @x, 1))-32)&lt;br /&gt;        else&lt;br /&gt;            SET @NewValue = @NewValue + SUBSTRING(@IN_String, @x, 1)&lt;br /&gt;       &lt;br /&gt;        SET @NewWord = 0&lt;br /&gt;    end&lt;br /&gt;    else&lt;br /&gt;    begin&lt;br /&gt;        if (ASCII(SUBSTRING(@IN_String, @x, 1)) &gt;= 65) and (ASCII(SUBSTRING(@IN_String, @x, 1)) &lt;= 90)&lt;br /&gt;            SET @NewValue = @NewValue + Char(ASCII(SUBSTRING(@IN_String, @x, 1))+32)&lt;br /&gt;        else&lt;br /&gt;            SET @NewValue = @NewValue + SUBSTRING(@IN_String, @x, 1)&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;         SET @x = @x + 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    if Not&lt;br /&gt;    (&lt;br /&gt;        (ASCII(SUBSTRING(@IN_String, @x, 1)) &gt;= 97) and (ASCII(SUBSTRING(@IN_String, @x, 1)) &lt;= 122)&lt;br /&gt;    OR    (ASCII(SUBSTRING(@IN_String, @x, 1)) &gt;= 65) and (ASCII(SUBSTRING(@IN_String, @x, 1)) &lt;= 90)&lt;br /&gt;    )&lt;br /&gt;        SET @NewWord = 1&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;RETURN(@NewValue)&lt;br /&gt;&lt;br /&gt;END&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-1020415606807551942?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/1020415606807551942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=1020415606807551942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/1020415606807551942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/1020415606807551942'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/08/hi-useful-sql-function-here.html' title='Format uppercase strings in SQL'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-3703417286910087439</id><published>2008-08-04T14:39:00.002+01:00</published><updated>2008-08-04T14:43:02.844+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RemovePreviousVersions'/><category scheme='http://www.blogger.com/atom/ns#' term='Deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Windows installer - Remove Previous Versions</title><content type='html'>http://www.simple-talk.com/dotnet/visual-studio/updates-to-setup-projects/&lt;br /&gt;&lt;br /&gt;Excellent link and explains how to unisintall previous versions of your application.&lt;br /&gt;&lt;br /&gt;Note that the version number in the article refers to the installer version number that is accessed in the properties window. This must also being at 1.0.0 or above, otherwise the  RemovePreviousVersions property won't pick it up as a previous version and won't work.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-3703417286910087439?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/3703417286910087439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=3703417286910087439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3703417286910087439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/3703417286910087439'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/08/windows-installer-remove-previous.html' title='Windows installer - Remove Previous Versions'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-2822621407420816384</id><published>2008-08-04T10:37:00.001+01:00</published><updated>2008-08-04T10:39:03.963+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2000'/><category scheme='http://www.blogger.com/atom/ns#' term='Triggers'/><title type='text'>SQL  code to Enable/Disable a Trigger</title><content type='html'>Useful code to disable and enable a trigger:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ALTER TABLE YourTable DISABLE TRIGGER ALL&lt;br /&gt;and&lt;br /&gt;ALTER TABLE YourTable ENABLE TRIGGER ALL&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-2822621407420816384?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/2822621407420816384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=2822621407420816384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2822621407420816384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2822621407420816384'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/08/sql-code-to-enabledisable-trigger.html' title='SQL  code to Enable/Disable a Trigger'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-594657790628264598</id><published>2008-07-23T11:50:00.002+01:00</published><updated>2008-07-23T11:53:40.001+01:00</updated><title type='text'>Visual Source Safe Useful Links</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;•    Share a project in VSS with other VSS projects.&lt;br /&gt;•    &lt;a href="http://www.softsteel.co.uk/tutorials/vss/index.html"&gt;http://www.softsteel.co.uk/tutorials/vss/index.html&lt;/a&gt;&lt;br /&gt;•    Drag files to share into a project in VSS Explorer, or Versions -&gt; Share.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;•    Virtual Rollback&lt;br /&gt;•    &lt;a href="http://blogs.msdn.com/korbyp/archive/2003/05/30/53992.aspx"&gt;http://blogs.msdn.com/korbyp/archive/2003/05/30/53992.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;•    Force comments possible only with 3rd party add-in.&lt;br /&gt;•   &lt;a href="http://forums.msdn.microsoft.com/en-US/vssourcecontrol/thread/281f0099-1925-4bc3-892e-e78d1881cc3b/"&gt;http://forums.msdn.microsoft.com/en-US/vssourcecontrol/thread/281f0099-1925-4bc3-892e-e78d1881cc3b/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;•    Pinning&lt;br /&gt;•    &lt;a href="http://www.sharpdeveloper.net/content/archive/2007/06/12/visual-source-safe-pinning-feature.aspx"&gt;http://www.sharpdeveloper.net/content/archive/2007/06/12/visual-source-safe-pinning-feature.aspx&lt;/a&gt;&lt;br /&gt;•    Go to File History to Pin a Version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-594657790628264598?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/594657790628264598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=594657790628264598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/594657790628264598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/594657790628264598'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/07/visual-source-safe-useful-links.html' title='Visual Source Safe Useful Links'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-8093587875824715572</id><published>2008-07-14T16:14:00.000+01:00</published><updated>2008-07-14T16:15:33.103+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Edit and Continue debugging</title><content type='html'>With Edit and Continue for C#, you can make changes to your code in break mode while debugging. The changes can be applied without having to stop and restart the debugging session.&lt;br /&gt;&lt;br /&gt;Edit and Continue is invoked automatically when you make changes in break mode, then choose a debugger execution command, such as Continue, Step, or Set Next Statement, or evaluate a function in a debugger window.&lt;br /&gt;&lt;br /&gt;Note  &lt;br /&gt;Edit and Continue is not supported when debugging 64-bit code, the Compact Framework, optimized code, mixed native/managed code, or SQL CLR code. If you try to apply code changes in one of these scenarios, the debugger puts up a dialog box explaining that Edit and Continue is not supported.&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;To invoke Edit and Continue automatically&lt;br /&gt;In break mode, make a change to your source code.&lt;br /&gt;&lt;br /&gt;From the Debug menu, click Continue, Step, or Set Next Statement or evaluate a function in a debugger window.&lt;br /&gt;&lt;br /&gt;The new code is compiled and the debugging continues with the new code. Some changes are not supported by Edit and Continue. For more information, see Supported Code Changes (C#).&lt;br /&gt;&lt;br /&gt;To enable/disable Edit and Continue&lt;br /&gt;On the Tools menu, click Options.&lt;br /&gt;&lt;br /&gt;In the Options dialog box, expand the Debugging node, and select Edit and Continue.&lt;br /&gt;&lt;br /&gt;In the Options dialog box Edit and Continue page, select or clear the Enable Edit and Continue check box.&lt;br /&gt;&lt;br /&gt;The setting takes effect when you restart the debugging session.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Link&lt;br /&gt;&lt;br /&gt;http://msdn.microsoft.com/en-us/library/ms164926(VS.80).aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-8093587875824715572?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/8093587875824715572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=8093587875824715572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8093587875824715572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8093587875824715572'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/07/edit-and-continue-debugging.html' title='Edit and Continue debugging'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-8952866416557149793</id><published>2008-07-11T09:35:00.003+01:00</published><updated>2008-07-14T11:14:30.794+01:00</updated><title type='text'>.Net Surround With Snippet File</title><content type='html'>How to create a .Net Surround With Snippet.&lt;br /&gt;&lt;br /&gt;   1.&lt;br /&gt;&lt;br /&gt;      On the File menu, click New and then click File.&lt;br /&gt;   2.&lt;br /&gt;&lt;br /&gt;      Click XML File and then click Open.&lt;br /&gt;   3.&lt;br /&gt;&lt;br /&gt;      On the File menu, click Save .&lt;br /&gt;   4.&lt;br /&gt;&lt;br /&gt;      In the Save as type box, select All Files (*.*).&lt;br /&gt;   5.&lt;br /&gt;&lt;br /&gt;      In the File name box, enter a file name with the .snippet file name extension.&lt;br /&gt;   6.&lt;br /&gt;&lt;br /&gt;      Click Save.&lt;br /&gt;&lt;br /&gt;Code Example....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;CodeSnippet Format=&amp;quot;1.0.0&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;Header&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;Title&amp;gt;TestJo&amp;lt;/Title&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;Shortcut&amp;gt;TestJo&amp;lt;/Shortcut&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;Description&amp;gt;Expansion snippet for TestJo&amp;lt;/Description&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;SnippetTypes&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;SnippetType&amp;gt;Expansion&amp;lt;/SnippetType&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;SnippetType&amp;gt;SurroundsWith&amp;lt;/SnippetType&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/SnippetTypes&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;/Header&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;Snippet&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;Code Language=&amp;quot;csharp&amp;quot; Format=&amp;quot;CData&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;![CDATA[&lt;br /&gt;&lt;br /&gt;      try &lt;br /&gt;&lt;br /&gt;      {&lt;br /&gt;&lt;br /&gt;         $selected$$end$&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      catch&lt;br /&gt;&lt;br /&gt;      {&lt;br /&gt;&lt;br /&gt;        throw(ex);&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;    ]]&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/Code&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;/Snippet&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/CodeSnippet&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I think the best thing to do is add the folders into code manager rather than using the imports button. This means that you will always access the updated version of the snippets. &lt;br /&gt;&lt;br /&gt;Open Tools &gt;&gt; Code Snippets Manager&lt;br /&gt;Press Add.&lt;br /&gt;Browse to the first folder above.&lt;br /&gt;Repeat for second folder.&lt;br /&gt;Access by:&lt;br /&gt;Right click and select insert snippet or surrounds with.&lt;br /&gt;Type the name of the snippet and intellisense will pick it up, and then press tab.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-8952866416557149793?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/8952866416557149793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=8952866416557149793' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8952866416557149793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8952866416557149793'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/07/net-surround-with-snippet-file_11.html' title='.Net Surround With Snippet File'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-2931343607840743940</id><published>2008-07-09T14:30:00.002+01:00</published><updated>2008-07-09T14:38:35.623+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dataset'/><category scheme='http://www.blogger.com/atom/ns#' term='ReadOnly'/><category scheme='http://www.blogger.com/atom/ns#' term='ADO'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='ADO.Net'/><title type='text'>Setting all Columns Read Only value</title><content type='html'>There are occasion where we may want to set all read only properties of our data columns to false or true. When we instantiate our dataset using our Dal.GetSchema() method it can set certain fields to ReadOnly, when we actually want to write to them at the front end. Here's a function to change this.&lt;br /&gt;&lt;br /&gt;    /// &lt;summary&gt;&lt;br /&gt;    /// Set all columns property readonly to false&lt;br /&gt;    /// &lt;/summary&gt;&lt;br /&gt;    private void SetReadOnlyFalse(DataSet ds)&lt;br /&gt;    {&lt;br /&gt;        foreach (DataTable dt in ds.Tables)&lt;br /&gt;        {&lt;br /&gt;            foreach (DataColumn dc in dt.Columns)&lt;br /&gt;                dc.ReadOnly = false;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note that we can easily change the code to make the entire Dataset readonly.&lt;br /&gt;&lt;br /&gt;    /// &lt;summary&gt;&lt;br /&gt;    /// Set all columns property readonly to true&lt;br /&gt;    /// &lt;/summary&gt;&lt;br /&gt;    private void SetReadOnlyTrue(DataSet ds)&lt;br /&gt;    {&lt;br /&gt;        foreach (DataTable dt in ds.Tables)&lt;br /&gt;        {&lt;br /&gt;            foreach (DataColumn dc in dt.Columns)&lt;br /&gt;                dc.ReadOnly = true;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;Or we could pass a parameter to our function to allow us to use one fucntion for both operations.&lt;br /&gt;&lt;br /&gt;    /// &lt;summary&gt;&lt;br /&gt;    /// Set all columns property readonly to the boolean blReadOnly&lt;br /&gt;    /// &lt;/summary&gt;&lt;br /&gt;    private void SetReadOnly(DataSet ds, bool blReadOnly)&lt;br /&gt;    {&lt;br /&gt;        foreach (DataTable dt in ds.Tables)&lt;br /&gt;        {&lt;br /&gt;            foreach (DataColumn dc in dt.Columns)&lt;br /&gt;                dc.ReadOnly = blReadOnly;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Please note that the code for the Dal.GetSchema just returns an empty dataset structure for a set of table from our SQL server database. The code discussed here will work for any dataset in .Net&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-2931343607840743940?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/2931343607840743940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=2931343607840743940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2931343607840743940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/2931343607840743940'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/07/setting-all-columns-read-only-value.html' title='Setting all Columns Read Only value'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-348866012355350035</id><published>2008-07-04T14:52:00.003+01:00</published><updated>2008-07-04T15:06:50.145+01:00</updated><title type='text'>FTP Batch File</title><content type='html'>Windows has a built in FTP client that can be used to transfer files using a DOS batch file.&lt;br /&gt;This can be used in DTS packages.&lt;br /&gt;&lt;br /&gt;To run the FTP client you pass in a batch file containing the FTP access details, change directory command if need and the files to transfer.&lt;br /&gt;&lt;br /&gt;Text file commands:&lt;br /&gt;&lt;br /&gt;open &lt;span style="font-style: italic;"&gt;servername &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;username&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;password&lt;/span&gt;&lt;br /&gt;cd &lt;span style="font-style: italic;"&gt;/data/ftp&lt;/span&gt;&lt;br /&gt;put &lt;span style="font-style: italic;"&gt;c:\filetotransfer.txt&lt;/span&gt;&lt;br /&gt;put &lt;span style="font-style: italic;"&gt;c:\otherfiletotransfer.txt&lt;/span&gt;&lt;br /&gt;quit&lt;br /&gt;&lt;br /&gt;Run the FTP client with the following commands:&lt;br /&gt;&lt;br /&gt;cd windows&lt;br /&gt;ftp -s:&lt;span style="font-style: italic;"&gt;c:\textfilecommands.txt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For more info:&lt;br /&gt;&lt;a href="http://www.computerhope.com/software/ftp.htm"&gt;http://www.computerhope.com/software/ftp.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-348866012355350035?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/348866012355350035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=348866012355350035' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/348866012355350035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/348866012355350035'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/07/ftp-batch-file.html' title='FTP Batch File'/><author><name>Andy</name><uri>http://www.blogger.com/profile/05946890717469547713</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-7525667203009399834</id><published>2008-07-02T11:10:00.002+01:00</published><updated>2008-07-02T11:13:25.148+01:00</updated><title type='text'>CSS Properties Window</title><content type='html'>Guys - i have found this really handy tool for Visual Studio 2005, i have just downloaded it and it looks good - saves jumping between the pages - let me know what you think?&lt;br /&gt;&lt;br /&gt;http://www.asp.net/downloads/sandbox/css-properties-window/&lt;br /&gt;&lt;br /&gt;Overview&lt;br /&gt;&lt;br /&gt;Visual Studio 2005 provides some capabilities for visually editing the styles for elements in an HTML or ASP.NET page. For example, in Design view, you can right-click a control or element, and then choose Style to display the Style Builder dialog box. Although the style builder enables you to create and edit in-line styles, there's no way to edit the styles that are inherited from a linked style sheet.  The new CSS Properties window provides this capability � it enables you to edit both in-line styles and styles in linked style sheets.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-7525667203009399834?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/7525667203009399834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=7525667203009399834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/7525667203009399834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/7525667203009399834'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/07/css-properties-window.html' title='CSS Properties Window'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-7896062011173109593</id><published>2008-06-26T12:01:00.002+01:00</published><updated>2008-06-26T13:29:19.773+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Encode'/><category scheme='http://www.blogger.com/atom/ns#' term='Decode'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Encode / Decode HTML Entities</title><content type='html'>Tool to wrap up HTML for publishing in the post&lt;br /&gt;&lt;br /&gt;http://centricle.com/tools/html-entities/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-7896062011173109593?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/7896062011173109593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=7896062011173109593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/7896062011173109593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/7896062011173109593'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/06/encode-decode-html-entities.html' title='Encode / Decode HTML Entities'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-8102037257024720907</id><published>2008-06-26T11:45:00.002+01:00</published><updated>2008-06-26T12:00:57.507+01:00</updated><title type='text'>.Net Snippet Files</title><content type='html'>How to create a .Net Snippet.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;On the &lt;span class="ui"&gt;File&lt;/span&gt; menu, click &lt;span class="ui"&gt;New&lt;/span&gt; and  then click &lt;span class="ui"&gt;File&lt;/span&gt;.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;Click &lt;span class="ui"&gt;XML File&lt;/span&gt; and then click &lt;span class="ui"&gt;Open&lt;/span&gt;.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;On the File menu, click &lt;span class="ui"&gt;Save &lt;xmlfilename&gt;&lt;/xmlfilename&gt;&lt;/span&gt;.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;In the &lt;span class="ui"&gt;Save as type&lt;/span&gt; box, select &lt;span class="ui"&gt;All  Files (*.*)&lt;/span&gt;.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;In the &lt;span class="ui"&gt;File name&lt;/span&gt; box, enter a file name with the  .snippet file name extension.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;Click &lt;span class="ui"&gt;Save&lt;/span&gt;.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;Code Example....&lt;br /&gt;&lt;br /&gt;&lt;codesnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"&gt;     &lt;codesnippet format="1.0.0"&gt;&lt;br /&gt;&amp;lt;codesnippets xmlns=&amp;quot;http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet&amp;quot;&amp;gt;     &amp;lt;codesnippet format=&amp;quot;1.0.0&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;header&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;         My Snippet      &amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/header&amp;gt;&lt;br /&gt;&amp;lt;snippet&amp;gt;&lt;br /&gt;  &amp;lt;references&amp;gt;    &lt;br /&gt;          &amp;lt;reference&amp;gt;&lt;br /&gt;               &amp;lt;assembly&amp;gt;System.Windows.Forms.dll&amp;lt;/assembly&amp;gt;    &lt;br /&gt;          &amp;lt;/reference&amp;gt;&lt;br /&gt;  &amp;lt;/references&amp;gt;&lt;br /&gt;  &amp;lt;code language=&amp;quot;CSharp&amp;quot;&amp;gt; &lt;br /&gt;           &amp;lt;!--[CDATA[if (jo != null)]]--&amp;gt;&lt;br /&gt;  &amp;lt;/code&amp;gt;&lt;br /&gt;&amp;lt;/snippet&amp;gt;&lt;br /&gt;&lt;header&gt; &lt;br /&gt;&lt;title&gt;        &lt;br /&gt;        My Snippet    &lt;br /&gt;&lt;/title&gt;&lt;/header&gt;&lt;snippet&gt;&lt;references&gt;&lt;reference&gt;&lt;assembly&gt;&lt;/assembly&gt;&lt;/reference&gt;&lt;/references&gt;&lt;code language="CSharp"&gt;&lt;/code&gt;&lt;/snippet&gt;&lt;br /&gt;To add into your Code Snippets Manager&lt;br /&gt;&lt;br /&gt;&lt;/codesnippet&gt;&lt;/codesnippets&gt;&lt;ol&gt;&lt;li&gt; &lt;p&gt;In the &lt;span class="ui"&gt;Language&lt;/span&gt; list, select the language that you want  to add a directory to.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;Click Add. This opens the &lt;span class="ui"&gt;Code Snippets Directory&lt;/span&gt;  window.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;Select the directory that you want to add to the &lt;span class="ui"&gt;Code Snippets  Manager&lt;/span&gt; and click &lt;span class="ui"&gt;OK&lt;/span&gt;.The directory will now be used  to search for available code snippets.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Useful links....&lt;br /&gt;Create:                    &lt;a href="http://msdn.microsoft.com/en-us/library/ms165394.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms165394.aspx&lt;/a&gt;&lt;br /&gt;Add to manager:    &lt;a href="http://msdn.microsoft.com/en-us/library/9ybhaktf.aspx"&gt;http://msdn.microsoft.com/en-us/library/9ybhaktf.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-8102037257024720907?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/8102037257024720907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=8102037257024720907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8102037257024720907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/8102037257024720907'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/06/net-snippet-files.html' title='.Net Snippet Files'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-1624135685461008073</id><published>2008-06-25T16:19:00.004+01:00</published><updated>2008-10-29T15:21:45.138Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='MSI'/><category scheme='http://www.blogger.com/atom/ns#' term='Deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Deploying Windows Applications</title><content type='html'>Quick guide.......&lt;br /&gt;&lt;br /&gt;1.    Open .Net project&lt;br /&gt;2.    Right click solution in the solution explorer&lt;br /&gt;3.   Add - New Project&lt;br /&gt;4.   Select setup and Deployment from Project Types&lt;br /&gt;5.    Select Setup Project&lt;br /&gt;6.   Enter relevant name&lt;br /&gt;7.    Right click Setup project&lt;br /&gt;8.    Add - Project Output - ok (all dependencies should appear)&lt;br /&gt;9.    Build Setup and Project&lt;br /&gt;10.  MSI installer is created in the setup project folder which has been created beside the main            project application.&lt;br /&gt;11.    Run the installer to create the MSI.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For any other prerequisites that might be needed for the application right click on the setup project in the solution explorer, click prerequisites and check the prerequisites to install and then build the setup file.&lt;br /&gt;&lt;br /&gt;For example we had a problem trying to deploy an Windows .Net 2005 application which had crystal reports included in it.  To get round this the Crystal Reports for .Net Framework 2.0 prerequisites had to be checked (following the steps above).  This then created an MSI for the Crystal Reports Framework in the setup folder.  Once installed on the users machine the reports worked fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-1624135685461008073?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/1624135685461008073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=1624135685461008073' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/1624135685461008073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/1624135685461008073'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/06/deploying-windows-applications.html' title='Deploying Windows Applications'/><author><name>JoJo</name><uri>http://www.blogger.com/profile/04078157210192367602</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-4157213571628557878</id><published>2008-06-11T16:04:00.004+01:00</published><updated>2008-06-11T16:23:59.680+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Getting the current User Name in Windows programming</title><content type='html'>&lt;span id="intelliTXT"&gt;&lt;pre lang="cs"&gt;&lt;span class="code-comment"&gt;Use this for getting the user name when building a windows application in DotNet. Done!&lt;br /&gt;--------------------------------------------------&lt;br /&gt;&lt;br /&gt;//&lt;/span&gt;&lt;span class="code-comment"&gt;Place this at the top, above your namespace declaration&lt;/span&gt;&lt;br /&gt;&lt;span class="code-keyword"&gt;using&lt;/span&gt; System.Security.Principal;&lt;br /&gt;&lt;br /&gt;&lt;span class="code-comment"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="code-comment"&gt;//&lt;/span&gt;&lt;span class="code-comment"&gt;In a specific event, place the following.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);" class="code-keyword"&gt;string&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; &lt;/span&gt;a;&lt;br /&gt;a = System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-4157213571628557878?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/4157213571628557878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=4157213571628557878' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4157213571628557878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4157213571628557878'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/06/getting-current-user-name-in-windows.html' title='Getting the current User Name in Windows programming'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-4172027279795351893</id><published>2008-06-09T13:35:00.004+01:00</published><updated>2008-06-09T14:09:33.058+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TryParse'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Using TryParse() in C#</title><content type='html'>When we are validating integer input, usually from a textbox, we need to make sure that the text is a valid integer before we set the properties in our class.&lt;br /&gt;&lt;br /&gt;We would normally have done this using the following type of code:&lt;br /&gt;&lt;br /&gt;       &lt;span style="color: rgb(51, 51, 255);"&gt;try&lt;/span&gt;&lt;br /&gt;       {&lt;br /&gt;           SomeInt = &lt;span style="color: rgb(51, 204, 255);"&gt;Convert&lt;/span&gt;.ToInt32(tbSomeInt.Text);&lt;br /&gt;       }&lt;br /&gt;       &lt;span style="color: rgb(51, 51, 255);"&gt;catch &lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;(Exception &lt;/span&gt;ex)&lt;br /&gt;       {&lt;br /&gt;           &lt;span style="color: rgb(51, 204, 255);"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: rgb(204, 0, 0);"&gt;"Some int must be a valid integer"&lt;/span&gt;);&lt;br /&gt;            &lt;span style="color: rgb(51, 51, 255);"&gt;return&lt;/span&gt;;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;By using a try catch in this manner we add quite a bit of overhead to the work that the .Net framework has to do for us. We can use the TryParse() method to get round this.&lt;br /&gt;&lt;br /&gt;               &lt;span style="color: rgb(51, 204, 255);"&gt;int &lt;/span&gt;intSomeInt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;                if &lt;/span&gt;(&lt;span style="color: rgb(51, 204, 255);"&gt;int&lt;/span&gt;.TryParse(tbSomeInt.Text, &lt;span style="color: rgb(51, 51, 255);"&gt;out &lt;/span&gt;intSomeInt) == &lt;span style="color: rgb(51, 51, 255);"&gt;true&lt;/span&gt;)&lt;br /&gt;               {&lt;br /&gt;                   //if the conversion succeded&lt;br /&gt;                   &lt;span style="color: rgb(51, 204, 255);"&gt;csSomeClass&lt;/span&gt;._SomeInt= intSomeInt;&lt;br /&gt;               }&lt;br /&gt;                   else&lt;br /&gt;               {&lt;br /&gt;                   &lt;span style="color: rgb(51, 204, 255);"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: rgb(204, 0, 0);"&gt;"Some int must be a valid integer"&lt;/span&gt;);&lt;br /&gt;                        &lt;span style="color: rgb(51, 51, 255);"&gt;return&lt;/span&gt;;&lt;br /&gt;               }&lt;br /&gt;&lt;br /&gt;This avoids the overhead of using the try and will run faster. Please note that you cannot use a class property in the &lt;span style="color: rgb(51, 51, 255);"&gt;out &lt;/span&gt;parameter of the method and must use a variable as above.&lt;br /&gt;&lt;br /&gt;Here is a link to another &lt;a href="http://fatagnus.com/why-you-should-use-tryparse-in-c/"&gt;blog&lt;/a&gt; that I found useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-4172027279795351893?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/4172027279795351893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=4172027279795351893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4172027279795351893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4172027279795351893'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/06/using-tryparse-in-c.html' title='Using TryParse() in C#'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7192236668889672798.post-4173944177588908338</id><published>2008-04-21T15:29:00.000+01:00</published><updated>2008-04-21T15:49:31.166+01:00</updated><title type='text'>Lets get spreading!!!!</title><content type='html'>Welcome to your Blog!&lt;br /&gt;&lt;br /&gt;Any and all topics related to the wonderful world of programming are welcome here.&lt;br /&gt;&lt;br /&gt;Add a post or comment whenever suits, no need to make them grammar perfect just get your point across!&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192236668889672798-4173944177588908338?l=spreadyourwealth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spreadyourwealth.blogspot.com/feeds/4173944177588908338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7192236668889672798&amp;postID=4173944177588908338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4173944177588908338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7192236668889672798/posts/default/4173944177588908338'/><link rel='alternate' type='text/html' href='http://spreadyourwealth.blogspot.com/2008/04/lets-get-spreading.html' title='Lets get spreading!!!!'/><author><name>Chris</name><uri>http://www.blogger.com/profile/06817275296074067231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
