<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The Visual Basic Team : Young Joo</title><link>http://blogs.msdn.com/vbteam/archive/tags/Young+Joo/default.aspx</link><description>Tags: Young Joo</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Petzold WPF Book Sample Conversion - Final Chapters (Young Joo)</title><link>http://blogs.msdn.com/vbteam/archive/2008/01/29/petzold-wpf-book-sample-conversion-final-chapters-young-joo.aspx</link><pubDate>Wed, 30 Jan 2008 02:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7314465</guid><dc:creator>VBTeam</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/vbteam/comments/7314465.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vbteam/commentrss.aspx?PostID=7314465</wfw:commentRss><description>&lt;P&gt;I've just posted a final set of chapters (Chapters 25 - 31).&amp;nbsp; This completes our conversion efforts and you now have access to entire sample code from Petzold's book in VB.&amp;nbsp; I would like to thank Evan and Ged who have been working with me on this.&amp;nbsp; You guys rock!!!&lt;/P&gt;
&lt;P&gt;A few things to note:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;I moved all the code to the new &lt;A class="" href="https://code.msdn.microsoft.com/" mce_href="https://code.msdn.microsoft.com/"&gt;MSDN Code Gallery&lt;/A&gt;.&amp;nbsp; This is a central place where we can share sample applications and&amp;nbsp;code snippets.&amp;nbsp; You can also participate and contribute your own sample code.&amp;nbsp; I've created a new gallery just for Petzold VB Sampe code.&amp;nbsp; You can access it at &lt;A href="http://code.msdn.microsoft.com/petzoldsamplevb"&gt;http://code.msdn.microsoft.com/petzoldsamplevb&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;I also updated the main page here (&lt;A href="http://blogs.msdn.com/vbteam/pages/Petzold-WPF-VB-Samples.aspx"&gt;http://blogs.msdn.com/vbteam/pages/Petzold-WPF-VB-Samples.aspx&lt;/A&gt;) to point to the code gallery page.&lt;/LI&gt;
&lt;LI&gt;In case you haven't noticed, Chapter 20 was missing XAMLCruncher project.&amp;nbsp; We were having a bit of problem getting it property converted to VB.&amp;nbsp; Ged was able to complete the conversion and I've uploaded the updated ZIP file for Chapter 20 which includes the XAMLCruncher project.&amp;nbsp; Be sure to read the README.txt file to find out how you can address the potential issue of running the application in Debug mode from VS.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Hope you enjoy this!&lt;/P&gt;
&lt;P&gt;Thanks!&lt;/P&gt;
&lt;P&gt;Young Joo&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7314465" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vbteam/archive/tags/Young+Joo/default.aspx">Young Joo</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/WPF/default.aspx">WPF</category></item><item><title>Petzold WPF Book Sample Conversion - New Chapters (Young Joo)</title><link>http://blogs.msdn.com/vbteam/archive/2008/01/07/petzold-wpf-book-sample-conversion-new-chapters-young-joo.aspx</link><pubDate>Mon, 07 Jan 2008 22:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7019505</guid><dc:creator>VBTeam</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/vbteam/comments/7019505.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vbteam/commentrss.aspx?PostID=7019505</wfw:commentRss><description>&lt;P&gt;Happy new year!&amp;nbsp; Hope you enjoyed your holiday break!&amp;nbsp;&amp;nbsp;And hopefully&amp;nbsp;you found some time to read Petzold's book and try out VB samples we've posted so far.&amp;nbsp; :)&lt;/P&gt;
&lt;P&gt;Evan and Ged had been working very hard to convert rest of chapters throughout December and I just posted Chapters 13 - 24 to &lt;A class="" href="http://blogs.msdn.com/vbteam/pages/Petzold-WPF-VB-Samples.aspx" mce_href="http://blogs.msdn.com/vbteam/pages/Petzold-WPF-VB-Samples.aspx"&gt;Applications = Code + Markup (Charles Petzold) Visual Basic Code Sample&lt;/A&gt;&amp;nbsp;page.&amp;nbsp; We also have several more chapters converted but since we have a couple of chapters missing between sets, I will hold off posting them until we have those missing chapters ready.&lt;/P&gt;
&lt;P&gt;I've also added a link to the single download file that contains all chapters converted so far.&amp;nbsp; This should make the download much easier for you.&amp;nbsp; The linked file will be updated as I post subsequent chapters.&lt;/P&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7019505" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vbteam/archive/tags/Young+Joo/default.aspx">Young Joo</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/WPF/default.aspx">WPF</category></item><item><title>Petzold WPF Book Sample Conversion Update (Young Joo)</title><link>http://blogs.msdn.com/vbteam/archive/2007/11/24/petzold-wpf-book-sample-conversion-update-young-joo.aspx</link><pubDate>Sat, 24 Nov 2007 15:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6500809</guid><dc:creator>VBTeam</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/vbteam/comments/6500809.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vbteam/commentrss.aspx?PostID=6500809</wfw:commentRss><description>&lt;P&gt;Been a while since I posted &lt;A class="" href="http://blogs.msdn.com/vbteam/archive/2007/11/04/petzold-chapter-3.aspx" mce_href="http://blogs.msdn.com/vbteam/archive/2007/11/04/petzold-chapter-3.aspx"&gt;Chapter 3 of Petzold's WPF book converted to VB&lt;/A&gt;.&amp;nbsp;&amp;nbsp; In case you missed it, &lt;A class="" href="http://blogs.msdn.com/vbteam/archive/2007/10/06/why-you-should-learn-wpf.aspx" mce_href="http://blogs.msdn.com/vbteam/archive/2007/10/06/why-you-should-learn-wpf.aspx"&gt;Patrick started working on this project&lt;/A&gt; which I took over early this month.&amp;nbsp; Anyway, I am very excited to tell you about progress we've been able to make so far.&lt;/P&gt;
&lt;P&gt;First, we now have&amp;nbsp;a separate article page, &lt;A class="" href="http://blogs.msdn.com/vbteam/pages/Petzold-WPF-VB-Samples.aspx" mce_href="http://blogs.msdn.com/vbteam/pages/Petzold-WPF-VB-Samples.aspx"&gt;Applications = Code + Markup (Charles Petzold) Visual Basic Code Sample&lt;/A&gt;,&amp;nbsp;where you can grab all the converted sample packages.&amp;nbsp; We will be updating this article page as we continue with our conversion project.&amp;nbsp;We did this to make it easier for you to find all sample codes without looking through old blog posts.&lt;/P&gt;
&lt;P&gt;Remember that I told you about extra help we got, Evan Lim from &lt;A class="" href="http://www.foothill.edu/" mce_href="http://www.foothill.edu"&gt;Foothill Community College&lt;/A&gt;?&amp;nbsp; Well, Evan is a trooper and he finished converting Ch. 4 - 12.&amp;nbsp; They are posted in the article page now!&amp;nbsp; Thanks Evan!&lt;/P&gt;
&lt;P&gt;Another exciting news.&amp;nbsp; &lt;A class="" href="http://blogs.vbcity.com/xtab/" mce_href="http://blogs.vbcity.com/xtab/"&gt;Ged Mead&lt;/A&gt;, a VB MVP, has also decided to join the project recently and he already started working on converting several chapters.&amp;nbsp; With Evan and Ged working together, I think we will be able to finish converting the entire book very soon.&lt;/P&gt;
&lt;P&gt;By the way, I would like to know if this project is being helpful to you guys.&amp;nbsp; Are you guys actually looking at the converted sample code while reading the book?&amp;nbsp; Does it help to have both C# and VB code available?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Thanks!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6500809" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vbteam/archive/tags/Young+Joo/default.aspx">Young Joo</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/WPF/default.aspx">WPF</category></item><item><title>Petzold Chapter 3 (Young Joo)</title><link>http://blogs.msdn.com/vbteam/archive/2007/11/04/petzold-chapter-3.aspx</link><pubDate>Mon, 05 Nov 2007 09:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5901790</guid><dc:creator>VBTeam</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/vbteam/comments/5901790.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vbteam/commentrss.aspx?PostID=5901790</wfw:commentRss><description>&lt;P&gt;I am Young Joo, PM @ VB team.&amp;nbsp; I will be helping out Patrick on converting samples in Charles Petzold's WPF book (Applications = Code + Markup) to Visual Basic.&amp;nbsp; This is an exciting project and I hope you enjoy this as much as I do.&amp;nbsp; Another exciting news is that we have an extra help for this project.&amp;nbsp; Evan Lim who currently teaches WPF &amp;amp; Blend courses at Foothill Community College in Los Altos, CA, has decided to help us with this.&amp;nbsp; He already has a lot of chapters converted.&amp;nbsp; So we will be able to release them much more quickly.&lt;/P&gt;
&lt;P&gt;Attached is VB sample for chapter 3.&lt;/P&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5901790" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/vbteam/attachment/5901790.ashx" length="15996" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/vbteam/archive/tags/Young+Joo/default.aspx">Young Joo</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/VB6_5F00_Migration_2F00_Interop/default.aspx">VB6_Migration/Interop</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/SMB/default.aspx">SMB</category></item><item><title>Channel 9 Interview - LINQ to SQL and the O/R Designer in VS 2008 (Beth Massi)</title><link>http://blogs.msdn.com/vbteam/archive/2007/08/27/channel-9-interview-linq-to-sql-and-the-o-r-designer-in-vs-2008-beth-massi.aspx</link><pubDate>Tue, 28 Aug 2007 01:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4598786</guid><dc:creator>VBTeam</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/vbteam/comments/4598786.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vbteam/commentrss.aspx?PostID=4598786</wfw:commentRss><description>&lt;P&gt;I just posted &lt;A class="" href="http://channel9.msdn.com/ShowPost.aspx?PostID=337692" target=_blank mce_href="http://channel9.msdn.com/ShowPost.aspx?PostID=337692"&gt;another great interview on Channel 9&amp;nbsp;with&amp;nbsp;Young Joo&lt;/A&gt; talking about LINQ to SQL and the new O/R Designer in Visual Studio 2008. He demos a typical business client-server scenario and shows how LINQ to SQL classes make it much easier to work with relational data in SQL Server 2005. Young also talks about architectures where he sees using LINQ to SQL having the most benefits.&lt;/P&gt;
&lt;P&gt;Learn more about the O\R Designer and LINQ to SQL by viewing our &lt;A class="" href="http://msdn2.microsoft.com/en-us/vbasic/bb466226.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/vbasic/bb466226.aspx"&gt;"How Do I" video LINQ series&lt;/A&gt; on the &lt;A class="" href="http://msdn2.microsoft.com/en-us/vbasic/default.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/vbasic/default.aspx"&gt;Visual Basic Developer Center&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Enjoy!&lt;BR&gt;-&lt;A class="" href="http://blogs.msdn.com/bethmassi/" target=_blank mce_href="http://blogs.msdn.com/bethmassi/"&gt;Beth Massi&lt;/A&gt;, VS Community&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4598786" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vbteam/archive/tags/LINQ_2F00_VB9/default.aspx">LINQ/VB9</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/Young+Joo/default.aspx">Young Joo</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/Beth+Massi/default.aspx">Beth Massi</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/Web/default.aspx">Web</category></item><item><title>TableAdapter and Multiple Result Sets</title><link>http://blogs.msdn.com/vbteam/archive/2007/03/13/tableadapter-multiple-result-sets.aspx</link><pubDate>Tue, 13 Mar 2007 21:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1874633</guid><dc:creator>VBTeam</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/vbteam/comments/1874633.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vbteam/commentrss.aspx?PostID=1874633</wfw:commentRss><description>&lt;P&gt;Several people asked me whether TableAdapter can be used to retrieve multiple result sets from stored procedures. The quick answer is... No, you can't do that with TableAdapter.Fill() method that gets generated as a part of Typed Dataset. But there's a very simple work-around. &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;STRONG&gt;DataAdapter.Fill() &amp;amp; Multiple Result Sets &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;TableAdapter.Fill() method calls DataAdapter.Fill() to retrieve data from database. And DataSet.Fill() method allows you to retrieve multiple result sets from a stored procedure. In order to retrieve multiple result sets, an overload of DataAdapter.Fill() that takes Dataset as a parameter needs to be used. If you do that, you get back a Dataset that contains multiple data tables filled with result sets returned by your stored procedure. &lt;/P&gt;
&lt;P&gt;Here's a simple example that shows you how this works. &lt;/P&gt;
&lt;P&gt;Let's say that you have a stored procedure called dbo.spSelectCustomersOrders in Northwind database. &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;CREATE&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;PROCEDURE&lt;/SPAN&gt; spSelectCustomersOrders &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Courier New"&gt;AS &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Courier New"&gt;BEGIN&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;SET&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;NOCOUNT&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;ON&lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;;&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;SELECT&lt;/SPAN&gt; &lt;SPAN style="COLOR: gray"&gt;*&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;FROM&lt;/SPAN&gt; Customers&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;SELECT&lt;/SPAN&gt; &lt;SPAN style="COLOR: gray"&gt;*&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;FROM&lt;/SPAN&gt; Orders &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Courier New"&gt;END &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;GO &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Below code will call this stored procedure and fill Dataset with both result sets. &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; myConn &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;New&lt;/SPAN&gt; System.Data.SqlClient.SqlConnection &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; myAdapter &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;New&lt;/SPAN&gt; System.Data.SqlClient.SqlDataAdapter &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; mySelectCommand &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;New&lt;/SPAN&gt; System.Data.SqlClient.SqlCommand &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; myDataset &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;New&lt;/SPAN&gt; System.Data.DataSet &lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;myConn.ConnectionString = &lt;SPAN style="COLOR: #a31515"&gt;"Data Source=.\SQLExpress;Initial Catalog=Northwind;Integrated Security=True" &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;mySelectCommand.Connection = myConn &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;mySelectCommand.CommandText = &lt;SPAN style="COLOR: #a31515"&gt;"dbo.spSelectCustomersOrders" &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;myAdapter.SelectCommand = mySelectCommand &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;myAdapter.Fill(myDataset) &lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;For&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Each&lt;/SPAN&gt; table &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; System.Data.DataTable &lt;SPAN style="COLOR: blue"&gt;In&lt;/SPAN&gt; myDataset.Tables &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&lt;SPAN style="COLOR: #a31515"&gt;"Table Name:"&lt;/SPAN&gt; &amp;amp; table.TableName) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Courier New"&gt;Next &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Output of this code looks like this. &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: Courier New"&gt;Table Name: Table&lt;BR&gt;Table Name: Table1 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;As you can see, DataAdapter.Fill() method executed the stored procedure and put each result set into two separate DataTables. &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;STRONG&gt;TableAdapter Solution &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;But why doesn't TableAdapter.Fill() correctly handle multiple result sets? It's because TableAdapter.Fill() calls DataAdapter.Fill() overload that takes DataTable, not Dataset. This can be easily addressed by creating a new Fill method in TableAdapter that calls DataAdapter.Fill() overload that takes Dataset. &lt;/P&gt;
&lt;P&gt;Assume we have NorthwindDataset.xsd that contains both Customers and Orders. And let's use the above stored procedure for our new Fill method. Add following code to your partial class file. You can create a partial class file by either double-clicking on the Dataset Designer surface, right-click on the Dataset Designer surface and choose "View Code" or add an empty class file manually. &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;Namespace&lt;/SPAN&gt; NorthwindDataSetTableAdapters &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Partial&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Class&lt;/SPAN&gt; CustomersTableAdapter &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Function&lt;/SPAN&gt; FillCustomersOrders(&lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; dataSet &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; NorthwindDataSet) &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Integer&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; multiSelectCommand &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;New&lt;/SPAN&gt; System.Data.SqlClient.SqlCommand&amp;nbsp;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; returnValue &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Integer&amp;nbsp;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;multiSelectCommand.Connection = &lt;SPAN style="COLOR: blue"&gt;Me&lt;/SPAN&gt;.Connection&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;multiSelectCommand.CommandText = &lt;SPAN style="COLOR: #a31515"&gt;"dbo.spSelectCustomersOrders"&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me&lt;/SPAN&gt;.Adapter.SelectCommand = multiSelectCommand&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: green"&gt;'' Map auto-created Table1 that holds the second result-set (Orders rows) to&amp;nbsp;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: green"&gt;'' Orders DataTable in our Dataset.&amp;nbsp;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;Me&lt;/SPAN&gt;.Adapter.TableMappings.Add(&lt;SPAN style="COLOR: #a31515"&gt;"Table1"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"Orders"&lt;/SPAN&gt;)&amp;nbsp;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;returnValue = &lt;SPAN style="COLOR: blue"&gt;Me&lt;/SPAN&gt;.Adapter.Fill(dataSet)&amp;nbsp;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;Return&lt;/SPAN&gt; returnValue&amp;nbsp;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Function&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Class &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Namespace &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Couple of key points to note. &lt;/P&gt;
&lt;P&gt;First, this new FillCustomersOrders takes Dataset as a parameter. This way, when we call DataAdapter.Fill() we can retrieve both result sets and fill Dataset appropriately. &lt;/P&gt;
&lt;P&gt;Second, notice how we use &lt;STRONG&gt;TableMapping&lt;/STRONG&gt; to map automatically created DataTable to Orders DataTable in our Dataset. When result sets are retrieved by DataAdapter.Fill() method, each result set is stored in separate DataTables in Dataset. By default, these DataTables are named as Table, Table1, Table2, etc. In order to map these DataTables to typed DataTables defined in our Dataset, we need to use TableMapping. If you open up code behind file for NorthwindDataset.xsd, for example, and browse to &lt;STRONG&gt;InitAdapter()&lt;/STRONG&gt; method of one of TableAdapter class, you will see something similar to below. &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;tableMapping.SourceTable = &lt;SPAN style="COLOR: #a31515"&gt;"Table" &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;tableMapping.DataSetTable = &lt;SPAN style="COLOR: #a31515"&gt;"Customers" &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: green"&gt;'' Colum mapping code skipped&lt;/SPAN&gt; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;... &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;Me&lt;/SPAN&gt;._adapter.TableMappings.Add(tableMapping) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;This block of code ensures that what gets returned by DataAdapter.Fill method maps to the correct typed DataTable in our Dataset. In our case with FillCustomersOrders, we know that the second result set contains Orders rows. So we need to create a mapping between Table1 and Orders to make sure Orders DataTable gets filled correctly. &lt;/P&gt;
&lt;P&gt;After you add above code to the partial class file, you can call FillCustomersOrders to fill both Customers and Orders with just one round-trip to database. &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;CustomersTableAdapter.FillCustomersOrders(&lt;SPAN style="COLOR: blue"&gt;Me&lt;/SPAN&gt;.NorthwindDataSet)&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;STRONG&gt;Performance Consideration &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;I can see how this kind of capability could be helpful in some cases. But you have to remember that this comes with its own issues. Although you might think that avoiding multiple trips to database would help in terms of performance, you could end up hurting performance by retrieving large set of data when you only need a sub-set. A lot of times, it is much better to retrieve smaller set of data, only what you need at the moment, and make another call to database when you need other sets of data. ADO.NET does a pretty good job of optimizing connection pooling so making multiple connections to database doesn't cause performance bottleneck in many cases. Rule of thumb. &lt;STRONG&gt;Only retrieve what you need&lt;/STRONG&gt;. &lt;/P&gt;
&lt;P&gt;But I can see how retrieving multiple result sets can be helpful in some cases. So, make use of the technique I described here and just make sure you consider performance issues always. &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;STRONG&gt;Additional Resources &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;DataAdapter.Fill(DataSet): &lt;A href="http://msdn2.microsoft.com/en-gb/library/377a8x4t.aspx" mce_href="http://msdn2.microsoft.com/en-gb/library/377a8x4t.aspx"&gt;http://msdn2.microsoft.com/en-gb/library/377a8x4t.aspx&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;DataTableMapping Class: &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdatacommondatatablemappingclasstopic.asp" mce_href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdatacommondatatablemappingclasstopic.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdatacommondatatablemappingclasstopic.asp&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;How to: Extend the Functionality of a Dataset: &lt;A href="http://msdn2.microsoft.com/en-us/library/ms171896(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms171896(VS.80).aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms171896(VS.80).aspx&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1874633" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vbteam/archive/tags/Data_5F00_Design/default.aspx">Data_Design</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/VB2005/default.aspx">VB2005</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/Young+Joo/default.aspx">Young Joo</category></item><item><title>New Data Tools Features in Visual Studio Orcas </title><link>http://blogs.msdn.com/vbteam/archive/2007/03/13/new-data-tools-features-in-visual-studio-orcas.aspx</link><pubDate>Tue, 13 Mar 2007 21:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1874614</guid><dc:creator>VBTeam</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/vbteam/comments/1874614.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vbteam/commentrss.aspx?PostID=1874614</wfw:commentRss><description>&lt;P&gt;Here's a list of new data tools features in Visual Studio. I will be discussing each one in more detail in upcoming posts. &lt;/P&gt;
&lt;H3&gt;Object Relational Designer &lt;/H3&gt;
&lt;P&gt;The object relational mapping technology lets you map relational databases to objects. Once the mapping is done, you can manipulate mapped objects as normal objects and easily submit changes back to relational database without writing complex data access logic. It is the latest enhancement in data access technology and there are many different implementations out there currently. However, no O/R implementation comes with a graphical designer that makes it easy to create and modify mapping. &lt;/P&gt;
&lt;P&gt;The Object Relational Designer in Visual Studio is Microsoft's answer to how O/R mapping should be done. It's a graphical designer which lets you easily map database objects such as tables and stored procedures to LINQ To SQL classes and methods. You can just drag out database objects from the Database Explorer onto the designer. Designer then takes care of creating mapping and generating proper LINQ To SQL code. You can also modify different aspects of mapping through the designer and let the designer take care of updating the code automatically. Association and inheritance relationships can also be easily created easily. The stored procedure support is also a very unique feature. Instead of letting LINQ To SQL generate INSERT, UPDATE and DELETE SQL statements, you can map methods created based on the stored procedures to each behavior. &lt;/P&gt;
&lt;P&gt;If you've tried May CTP of LINQ, you probably remember a version of the O/R Designer we included. It was called DLinq Designer. What you see in &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=281fcb3d-5e79-4126-b4c0-8db6332de26e&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=281fcb3d-5e79-4126-b4c0-8db6332de26e&amp;amp;displaylang=en"&gt;March CTP of Visual Studio Orcas&lt;/A&gt; is the next generation of DLinq Designer and it's now called the O/R Designer. &lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 631px; HEIGHT: 399px" height=399 src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/fe_2FE7/image%7B0%7D%5B18%5D.png" width=631 mce_src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/fe_2FE7/image%7B0%7D%5B18%5D.png"&gt;&lt;/P&gt;
&lt;H2&gt;&amp;nbsp;&amp;nbsp;&lt;/H2&gt;
&lt;H3&gt;Hierarchical Update in Typed Dataset &lt;/H3&gt;
&lt;P&gt;Keeping track of all inserts, updates and deletes across multiple related datatables and sending those changes in the right order back to the server is not an easy task. How do you make sure that new orders for your customer are added correctly to the system while updating the shipping address of the same customer and deleting one of old orders that had been cancelled all at the same time? &lt;/P&gt;
&lt;P&gt;With hierarchical update support in Typed Dataset, all you need to do is to call UpdateAll() method of the new TableAdapterManager component we've added. It takes care of collecting all changes and sending them back to the server in the right order. Of course, everything is wrapped into a transaction. &lt;/P&gt;
&lt;P&gt;We believe this would significantly improve the productivity of developers using Typed Dataset to create data applications. You can try this new feature in &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=281fcb3d-5e79-4126-b4c0-8db6332de26e&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=281fcb3d-5e79-4126-b4c0-8db6332de26e&amp;amp;displaylang=en"&gt;March CTP of Visual Studio Orcas&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/fe_2FE7/image%7B0%7D%5B35%5D.png" mce_src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/fe_2FE7/image%7B0%7D%5B35%5D.png"&gt;&lt;/P&gt;
&lt;H2&gt;&amp;nbsp;&amp;nbsp;&lt;/H2&gt;
&lt;H3&gt;N –Tier Support in Typed Dataset &lt;/H3&gt;
&lt;P&gt;I admit. Typed Dataset code we generate in Visual Studio 2005 is not N-Tier ready. If you open up the code file, you will notice that we've done a great job separating types from data access logic. Dataset and typed datatables are declared in one Typed Dataset class and all TableAdapter classes are declared under a separate namespace. But we generate both sets in one code file. For a lot of applications this is not an issue. But when you are building multi-tiered applications, having them in one file doesn't really help. This exact problem is discussed in detail on &lt;A href="http://blogs.msdn.com/smartclientdata/archive/2006/02/21/SeperatingTypedDataSetsFromTableAdapters.aspx" mce_href="http://blogs.msdn.com/smartclientdata/archive/2006/02/21/SeperatingTypedDataSetsFromTableAdapters.aspx"&gt;Splitting Typed Datasets from TableAdapters&lt;/A&gt; blog entry from Steve Lasker. The solution proposed in this blog entry was to open up the generated code and manually copy and paste type declaration out into a new class file. Although this did allow you to use Typed Dataset in N-Tier scenario, it had one major problem. Since you are manually modifying generated code, anytime you make a change to Typed Dataset via Dataset Designer, you have to remember to copy and paste code. That was painful. &lt;/P&gt;
&lt;P&gt;In Orcas, you can instruct the designer to generate Dataset portion of the code into another project in your solution. No more manual copy/paste. You can even make changes to Typed Dataset from the designer and it will make sure that updated code is generated into the specified project. You can still choose to stay in 2-Tier model. Designer will continue to generate everything in a single file. When you are ready to take your 2-Tier application to N-Tier, just tell the designer which project is the Dataset project and you are done. It's that simple. A preview of this feature is in &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=281fcb3d-5e79-4126-b4c0-8db6332de26e&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=281fcb3d-5e79-4126-b4c0-8db6332de26e&amp;amp;displaylang=en"&gt;March CTP of Visual Studio Orcas&lt;/A&gt; and you will be able to try the polished version in Beta 1. &lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/fe_2FE7/image%7B0%7D_thumb%5B12%5D.png" mce_src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/fe_2FE7/image%7B0%7D_thumb%5B12%5D.png"&gt;&lt;/P&gt;
&lt;H2&gt;&amp;nbsp;&amp;nbsp;&lt;/H2&gt;
&lt;H3&gt;Local Data Cache with SQL Compact Edition &lt;/H3&gt;
&lt;P&gt;SQL Compact Edition enables many exciting scenarios for developers. The most interesting scenario is to use SQL Compact Edition database file as a local cache of data that do not change often. For instance, your application might keep a list of products in local cache while exchanging order information with remote server. Once in a while, you can synch products list from the remote server but you will mostly use local cache. &lt;/P&gt;
&lt;P&gt;Since SQL CE is light-weight database that has very little overhead, it's the perfect candidate for the local cache store. You can use the Sync Service for ADO.NET to synchronize data between remote database server and local SQL CE database file. Sounds great, right? But how do you set everything up so that you can do this? &lt;/P&gt;
&lt;P&gt;Visual Studio Orcas includes new project item template "Local Data Cache". Adding "Local Data Cache" to your project creates .sync file which is an XML file that describes what gets synched and how. This file comes with the designer that lets you configure different aspects of synchronization easily. Designer also creates SQL CE .sdf database file to be used as local cache store as well as synchronization code necessary to interact with the Sync Service. A preview of this feature is in &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=281fcb3d-5e79-4126-b4c0-8db6332de26e&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=281fcb3d-5e79-4126-b4c0-8db6332de26e&amp;amp;displaylang=en"&gt;March CTP of Visual Studio Orcas&lt;/A&gt; and you will be able to try the polished version in Beta 1. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;IMG src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/fe_2FE7/image%7B0%7D%5B30%5D.png" mce_src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/fe_2FE7/image%7B0%7D%5B30%5D.png"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Other Enhancements to Data Tools &lt;/H3&gt;
&lt;P&gt;Above four are major data tools features in Visual Studio Orcas. But there are tons of other enhancements we've made to existing data tools. I will be dedicating a separate post to describe other important enhancements we've made. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1874614" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vbteam/archive/tags/Data_5F00_Design/default.aspx">Data_Design</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/Young+Joo/default.aspx">Young Joo</category></item></channel></rss>