<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.infopathdev.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Hilary Stoupa</title><subtitle type="html" /><id>http://www.infopathdev.com/blogs/hilary/atom.aspx</id><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/hilary/default.aspx" /><link rel="self" type="application/atom+xml" href="http://www.infopathdev.com/blogs/hilary/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20611.960">Community Server</generator><updated>2008-07-04T07:57:00Z</updated><entry><title>Fun with Sequential Form IDs, SQL and Sprocs!</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/hilary/archive/2008/11/21/fun-with-sequential-form-ids-sql-and-sprocs.aspx" /><id>http://www.infopathdev.com/blogs/hilary/archive/2008/11/21/fun-with-sequential-form-ids-sql-and-sprocs.aspx</id><published>2008-11-22T00:41:00Z</published><updated>2008-11-22T00:41:00Z</updated><content type="html">&lt;p&gt;I may be exagerating when I say &amp;#39;fun&amp;#39;. Forgive me for that.&lt;/p&gt;
&lt;p&gt;There are a variety of ways that you can create a unique, human readable form Id. This blog post is for those of you who prefer not to have to write or buy a web service, and don&amp;#39;t want to write more than a little code. I&amp;#39;m warning you -- you will have to write some stored procedures. Or, you know, copy / paste them. It sounds scarier than it is, so let&amp;#39;s soldier on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Problem&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You have a form that you want to give an Id field, for whatever reason. You want your Ids to start with a particular number (we are going to start with 435, just because) and for each subsequently saved form to increment by 1. Now, if your form submits to a database, you can just use an auto incrementing Id column and sleep soundly knowing your form will get the next Id when it is submitted. You don&amp;#39;t have a problem. But if we have a form that we save in a network folder, or submit to SharePoint, or do something else with ... well, you have a problem.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Solution&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Actually, &lt;strong&gt;&lt;em&gt;a &lt;/em&gt;&lt;/strong&gt;solution. There are a lot. This one involves creating a single SQL table to create and track Id numbers, and two stored procedures to help us make sure the right form gets the right Id. While I am going to add this code to the save request in the form, you can add it to another event if you prefer. We will be adding a couple of data connections to the form, so it will need domain trust, but it shouldn&amp;#39;t require full trust.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Steps&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;The SQL&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a new table in a SQL database called &amp;#39;FormIdNumbers&amp;#39; with two columns: GUID, which will be a unique identifier, and ID, which will be an auto incrementing identity column.&lt;br /&gt;&lt;img title="Id Table design mode" style="WIDTH:668px;HEIGHT:485px;" height="485" alt="Id Table design mode" src="http://www.infopathdev.com/blogs/hilary/SequentialId/SprocNightmare1.png" width="668" /&gt;&lt;/p&gt;
&lt;p&gt;Next, create two stored procedures. The first, called &amp;#39;GenerateGUID&amp;#39; simply creates a new GUID we can use to uniquely identify our form while we create and retrieve its Id number:&lt;br /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;font face="Courier New"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font color="#0000ff"&gt;Create&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;"&gt; &lt;font color="#0000ff"&gt;Procedure&lt;/font&gt; GenerateGUID&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New" color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New" color="#0000ff"&gt;Begin&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New" color="#0000ff"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Set&lt;/font&gt; &lt;font color="#0000ff"&gt;NoCount&lt;/font&gt; &lt;font color="#0000ff"&gt;On&lt;/font&gt;&lt;font color="#808080"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New" color="#808080"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Select&lt;/font&gt; &lt;font color="#ff00ff"&gt;NewID&lt;/font&gt;&lt;font color="#808080"&gt;()&lt;/font&gt; &lt;font color="#0000ff"&gt;as&lt;/font&gt; &lt;font color="#0000ff"&gt;GUID&lt;/font&gt;&lt;font color="#808080"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New" color="#808080"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:10pt;LINE-HEIGHT:115%;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New" color="#0000ff"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;The second procedure will take a GUID for a parameter, and insert a new row in our FormIdNumbers table:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;font face="Courier New"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font color="#0000ff"&gt;Create&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;"&gt; &lt;font color="#0000ff"&gt;Procedure&lt;/font&gt; FormIdInsertRow&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @GUID &lt;font color="#0000ff"&gt;uniqueidentifier&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New" color="#0000ff"&gt;As&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New" color="#0000ff"&gt;Begin&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Insert&lt;/font&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;into&lt;/font&gt; FormIdNumbers &lt;font color="#808080"&gt;(&lt;/font&gt;&lt;font color="#0000ff"&gt;GUID&lt;/font&gt;&lt;font color="#808080"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Values&lt;/font&gt; &lt;font color="#808080"&gt;(&lt;/font&gt;@GUID&lt;font color="#808080"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Commit&lt;/font&gt; &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:10pt;LINE-HEIGHT:115%;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New" color="#0000ff"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;The Form&lt;/em&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a simple form with a field on it that you want to populate with your Id number. I&amp;#39;m just using a text field, so I don&amp;#39;t have to fuss about with the xsi:nil attribute. You may be more particular and wish to use an int.&lt;/p&gt;
&lt;p&gt;First, we will add a receive data connection that we are going to modify to call our GenerateGUID sproc. Walk through the data connection wizard, and connect to the FormIdNumbers table. When you get to the screen that shows your table and columns:&lt;br /&gt;&lt;img title="Data Connection Wizard" style="WIDTH:488px;HEIGHT:271px;" height="271" alt="Data Connection Wizard" src="http://www.infopathdev.com/blogs/hilary/SequentialId/SprocNightmare3.png" width="488" /&gt;&lt;br /&gt;click the &lt;strong&gt;EditSql &lt;/strong&gt;button.&lt;/p&gt;
&lt;p&gt;Inside the Edit SQL field, type &lt;strong&gt;&lt;em&gt;Execute GenerateGUID&lt;/em&gt;&lt;/strong&gt;:&lt;br /&gt;&lt;img title="Edit SQL window" style="WIDTH:476px;HEIGHT:285px;" height="285" alt="Edit SQL window" src="http://www.infopathdev.com/blogs/hilary/SequentialId/SprocNightmare4.png" width="476" /&gt;&lt;/p&gt;
&lt;p&gt;Select &lt;strong&gt;OK&lt;/strong&gt;. You&amp;#39;ll get a warning, you can select&amp;nbsp;&lt;strong&gt;Yes&lt;/strong&gt;&amp;nbsp;on that:&lt;br /&gt;&lt;img title="Tree view warning" style="WIDTH:553px;HEIGHT:116px;" height="116" alt="Tree view warning" src="http://www.infopathdev.com/blogs/hilary/SequentialId/SprocNightmare5.png" width="553" /&gt;&lt;/p&gt;
&lt;p&gt;As an aside, all that means is you won&amp;#39;t see a view of your data structure when the dialog box closes and you are back in the Data Connection Wizard.&lt;/p&gt;
&lt;p&gt;When you select &lt;strong&gt;Next&lt;/strong&gt; in the Data Connection Wizard, you&amp;#39;ll get &lt;em&gt;another &lt;/em&gt;warning:&lt;br /&gt;&lt;img title="Sproc Warning" style="WIDTH:898px;HEIGHT:135px;" height="135" alt="Sproc Warning" src="http://www.infopathdev.com/blogs/hilary/SequentialId/SprocNightmare6.png" width="898" /&gt;&lt;/p&gt;
&lt;p&gt;It is true. InfoPath does &lt;strong&gt;&lt;em&gt;not&lt;/em&gt;&lt;/strong&gt; know if the query is safe. We do, though. Select &lt;strong&gt;Yes&lt;/strong&gt; again. No need to select the &amp;quot;Store a copy of the data in the form template&amp;quot; checkbox on the next screen. On the last screen, rename the data connection GenerateGUID and decide if you&amp;#39;d like to retrieve the data when the form opens. I&amp;#39;m not going to -- I&amp;#39;m going to run the query from my code. If you run the query on load, you won&amp;#39;t need to run it in code, so keep that in mind later....&lt;br /&gt;&lt;img title="GenerateGUID data connection" style="WIDTH:628px;HEIGHT:432px;" height="432" alt="GenerateGUID data connection" src="http://www.infopathdev.com/blogs/hilary/SequentialId/SprocNightmare7.png" width="628" /&gt;&lt;/p&gt;
&lt;p&gt;Create another receive data connection in your form to the FormIdNumbers table -- this time, leave the SQL alone, so we have a normal old connection to the table. Deselect the &amp;quot;Automatically retrive data when the form is opened&amp;quot; checkbox, as we won&amp;#39;t want the data until we&amp;#39;ve run our FormIdInsertRow sproc and modified this data connection to include a &amp;#39;where&amp;#39; clause. Name the connection FormIdNumbers:&lt;br /&gt;&lt;img title="FormIdNumbers data connection" style="WIDTH:628px;HEIGHT:432px;" height="432" alt="FormIdNumbers data connection" src="http://www.infopathdev.com/blogs/hilary/SequentialId/SprocNightmare8.png" width="628" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;The Code&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You need to make an architectural decision at this point. When do you want to generate the Id number? As I mentioned earlier, I plan to generate my Id and populate the Id field in the Save Request event for my form. You may wish to add a button, or put the code in a particular field&amp;#39;s Changed event -- it is up to you.&lt;/p&gt;
&lt;p&gt;First I have to set my form to use custom code for its save behavior. Go to &lt;strong&gt;Tools &lt;/strong&gt;&amp;gt; &lt;strong&gt;Form Options &lt;/strong&gt;and select the &amp;quot;Save using custom code&amp;quot; checkbox:&lt;br /&gt;&lt;img title="Form Options" style="WIDTH:605px;HEIGHT:487px;" height="487" alt="Form Options" src="http://www.infopathdev.com/blogs/hilary/SequentialId/SprocNightmare9.png" width="605" /&gt;&lt;/p&gt;
&lt;p&gt;Click the &lt;strong&gt;Edit &lt;/strong&gt;button to generate the event handler. You may wish to check your programming language before clicking the &lt;strong&gt;Edit &lt;/strong&gt;button to generate the event handler. The following code sample is C# for the InfoPath 2007 Object Model. Replace this line in the FormEvents_Save method:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:10pt;LINE-HEIGHT:115%;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New" color="#008000"&gt;// Write your code that will run before a Save or Save As operation here.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;With this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;//get the value of the Id node. You&amp;#39;ll need to replace &amp;quot;/my:myFields/my:IdNumber&amp;quot; with the XPath to your node&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#2b91af"&gt;XPathNavigator&lt;/font&gt; idNode = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:IdNumber&amp;quot;&lt;/font&gt;, &lt;font color="#0000ff"&gt;this&lt;/font&gt;.NamespaceManager);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;//if not blank, don&amp;#39;t bother, we already have an Id&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;if&lt;/font&gt; (idNode.Value.Equals(&lt;font color="#a31515"&gt;&amp;quot;&amp;quot;&lt;/font&gt;))&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;try&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//set up the secondary data sources&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;XPathNavigator&lt;/font&gt; domGuid = &lt;font color="#0000ff"&gt;this&lt;/font&gt;.DataSources[&lt;font color="#a31515"&gt;&amp;quot;GenerateGUID&amp;quot;&lt;/font&gt;].CreateNavigator();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;XPathNavigator&lt;/font&gt; domFormId = &lt;font color="#0000ff"&gt;this&lt;/font&gt;.DataSources[&lt;font color="#a31515"&gt;&amp;quot;FormIdNumbers&amp;quot;&lt;/font&gt;].CreateNavigator();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//set up the connections&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;AdoQueryConnection&lt;/font&gt; genGUID = (&lt;font color="#2b91af"&gt;AdoQueryConnection&lt;/font&gt;)DataConnections[&lt;font color="#a31515"&gt;&amp;quot;GenerateGUID&amp;quot;&lt;/font&gt;];&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;AdoQueryConnection&lt;/font&gt; formId = (&lt;font color="#2b91af"&gt;AdoQueryConnection&lt;/font&gt;)DataConnections[&lt;font color="#a31515"&gt;&amp;quot;FormIdNumbers&amp;quot;&lt;/font&gt;];&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//query the GenerateGUID connection once to generate the GUID. If you are retrieving this data on form open, you can skip this.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genGUID.Execute();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//get the GUID we just retrieved. You may want to recopy this XPath from your data source task pane....&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;string&lt;/font&gt; guid = domGuid.SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/dfs:myFields/dfs:dataFields/d:row/@GUID&amp;quot;&lt;/font&gt;, &lt;font color="#0000ff"&gt;this&lt;/font&gt;.NamespaceManager).Value;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//set the command to execute our FormIdInsertRow sproc. Save the original command before modifying, so you can set it back after. We are passing in the GUID we created earlier as a param in our sproc. This way, when we create our new id, we know that we can retrieve it with our Guid and be secure that we have the right Id for the right form&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;string&lt;/font&gt; origGuidCommand = genGUID.Command;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genGUID.Command = &lt;font color="#a31515"&gt;&amp;quot;Execute FormIdInsertRow &amp;#39;&amp;quot;&lt;/font&gt; + guid + &lt;font color="#a31515"&gt;&amp;quot;&amp;#39;&amp;quot;&lt;/font&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genGUID.Execute();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//get the original command for the FormIdNumbers data connection&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;string&lt;/font&gt; origFormIdCommand = formId.Command;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//add the &amp;#39;where&amp;#39; clause&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formId.Command = origFormIdCommand + &lt;font color="#a31515"&gt;&amp;quot; where GUID = &amp;#39;&amp;quot;&lt;/font&gt; + guid + &lt;font color="#a31515"&gt;&amp;quot;&amp;#39;&amp;quot;&lt;/font&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//execute the query&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formId.Execute();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//set the commands back to their original states&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genGUID.Command = origGuidCommand;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formId.Command = origFormIdCommand;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008000"&gt;//set the field to the ID&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; idNode.SetValue(domFormId.SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/dfs:myFields/dfs:dataFields/d:FormIdNumbers/@ID&amp;quot;&lt;/font&gt;, &lt;font color="#0000ff"&gt;this&lt;/font&gt;.NamespaceManager).Value);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;catch&lt;/font&gt; (&lt;font color="#2b91af"&gt;Exception&lt;/font&gt; ex)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;MessageBox&lt;/font&gt;.Show(ex.Message.ToString());&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;Of course, if you changed the names of the data connections, stored procedures, or anything else as you walked through this, you will need to modify the code to address those changes.&lt;/p&gt;
&lt;p&gt;If you are using InfoPath 2003, here is a JScript version:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//get the value of the ID node. If blank, skip&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;var&lt;/font&gt; idNode = XDocument.DOM.selectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:IdNumber&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;if&lt;/font&gt; (idNode.text == &lt;font color="#a31515"&gt;&amp;quot;&amp;quot;&lt;/font&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;try&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;var&lt;/font&gt; domGuid = &lt;font color="#0000ff"&gt;null&lt;/font&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;var&lt;/font&gt; domFormId = &lt;font color="#0000ff"&gt;null&lt;/font&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//set up the secondary DOMs&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; domGuid = XDocument.GetDOM(&lt;font color="#a31515"&gt;&amp;quot;GenerateGUID&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; domGuid.setProperty(&lt;font color="#a31515"&gt;&amp;quot;SelectionNamespaces&amp;quot;&lt;/font&gt;, &lt;font color="#a31515"&gt;&amp;#39;xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:dfs=&amp;quot;http://schemas.microsoft.com/office/infopath/2003/dataFormSolution&amp;quot; xmlns:d=&amp;quot;http://schemas.microsoft.com/office/infopath/2003/ado/dataFields&amp;quot;&amp;#39;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; domFormId = XDocument.GetDOM(&lt;font color="#a31515"&gt;&amp;quot;FormIdNumbers&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; domFormId.setProperty(&lt;font color="#a31515"&gt;&amp;quot;SelectionNamespaces&amp;quot;&lt;/font&gt;, &lt;font color="#a31515"&gt;&amp;#39;xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:dfs=&amp;quot;http://schemas.microsoft.com/office/infopath/2003/dataFormSolution&amp;quot; xmlns:d=&amp;quot;http://schemas.microsoft.com/office/infopath/2003/ado/dataFields&amp;quot;&amp;#39;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//get the data objects&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;var&lt;/font&gt; genGUID = XDocument.DataObjects(&lt;font color="#a31515"&gt;&amp;quot;GenerateGUID&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;var&lt;/font&gt; formId = XDocument.DataObjects(&lt;font color="#a31515"&gt;&amp;quot;FormIdNumbers&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//query the GenerateGUID connection once to generate the GUID. If you are retrieving this data on form open, you can skip this.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genGUID.Query();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//get the GUID we just retrieved. You may want to recopy this XPath from your data source task pane....&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;var&lt;/font&gt; guid = domGuid.selectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/dfs:myFields/dfs:dataFields/d:row/@GUID&amp;quot;&lt;/font&gt;).text;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//set the command to execute our FormIdInsertRow sproc. Save the original command before modifying, so you can set it back after. We are passing in the GUID we created earlier as a param in our sproc. This way, when we create our new id, we know that we can retrieve it with our Guid and be secure that we have the right Id for the right form&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;var&lt;/font&gt; origGuidCommand = genGUID.QueryAdapter.Command;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genGUID.QueryAdapter.Command = &lt;font color="#a31515"&gt;&amp;quot;Execute FormIdInsertRow &amp;#39;&amp;quot;&lt;/font&gt; + guid + &lt;font color="#a31515"&gt;&amp;quot;&amp;#39;&amp;quot;&lt;/font&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genGUID.Query();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//get the original command&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;var&lt;/font&gt; origFormIdCommand = formId.QueryAdapter.Command;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//add the &amp;#39;where&amp;#39; clause&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formId.QueryAdapter.Command = origFormIdCommand + &lt;font color="#a31515"&gt;&amp;#39; where &amp;quot;GUID&amp;quot; = &amp;#39;&lt;/font&gt; + &lt;font color="#a31515"&gt;&amp;quot;&amp;#39;&amp;quot;&lt;/font&gt; + guid + &lt;font color="#a31515"&gt;&amp;quot;&amp;#39;&amp;quot;&lt;/font&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//execute the query&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formId.Query();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//set the commands back to their original states&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genGUID.QueryAdapter.Command = origGuidCommand;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formId.QueryAdapter.Command = origFormIdCommand; &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//set the field to the ID&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; idNode.text = domFormId.selectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/dfs:myFields/dfs:dataFields/d:FormIdNumbers/@ID&amp;quot;&lt;/font&gt;).text;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;catch&lt;/font&gt; (err)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XDocument.UI.Alert(err.description);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;And now....&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Results&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Preview your form to test it. When I save my form, since this is the first time my form will connect to the data sources I&amp;#39;ve created, I get a warning:&lt;br /&gt;&lt;img title="Data Connection warning" style="WIDTH:645px;HEIGHT:495px;" height="495" alt="Data Connection warning" src="http://www.infopathdev.com/blogs/hilary/SequentialId/SprocNightmare10.png" width="645" /&gt;&lt;/p&gt;
&lt;p&gt;If I click &lt;strong&gt;Yes&lt;/strong&gt;, my Id field will be populated before the Save Location dialog opens:&lt;br /&gt;&lt;img title="PopulatedId" style="WIDTH:797px;HEIGHT:224px;" height="224" alt="PopulatedId" src="http://www.infopathdev.com/blogs/hilary/SequentialId/SprocNightmare11.png" width="797" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Addendum&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Those of you&amp;nbsp;who are stored procedure savvy will recognize that:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;if the FormIdInsertRow sproc contained a &amp;#39;Select&amp;#39; we could return our result set with that instead of running another query&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;the FormIdInsertRow sproc is not balanced -- it contains the keyword &amp;#39;Commit&amp;#39; but doesn&amp;#39;t have &amp;#39;Begin Transaction&amp;#39; anywhere&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;For the first concern, I ran into an exciting InfoPath feature when it comes to auto incrementing identity columns. When InfoPath uses the data connection to create the schema, it rolls back the transaction, but &lt;strong&gt;not the identity&lt;/strong&gt;. This means that if I used a sproc that added my new row and returned the results so I would have my new Id number for my form, I would effectively get &lt;strong&gt;every other&lt;/strong&gt; Id number. &lt;a href="http://www.eggheadcafe.com/software/aspnet/31137951/secondary-data-connection.aspx"&gt;This&lt;/a&gt; thread on a different site describes this issue a bit further. &lt;/p&gt;
&lt;p&gt;Because of the double call issue, the solution above executes a sproc that takes a GUID as a parameter, then uses the same GUID to retrieve a row from our data table to get the ID number associated with that GUID.&lt;/p&gt;
&lt;p&gt;For the second issue,&amp;nbsp;while the FormIdInsertRow procedure contains a commit, it lacks&amp;nbsp;a&amp;nbsp;&amp;#39;Begin Transaction&amp;#39; and, if you execute it, it will run and insert a row, but will generate a message:&lt;br /&gt;&lt;img title="Sproc Message" style="WIDTH:581px;HEIGHT:123px;" height="123" alt="Sproc Message" src="http://www.infopathdev.com/blogs/hilary/SequentialId/SprocNightmare2.png" width="581" /&gt;&lt;/p&gt;
&lt;p&gt;While you may want to &amp;#39;fix&amp;#39; that when you add the sproc to your database, please, learn from my struggles, and leave the unbalanced &amp;#39;Commit&amp;#39;. When we modify an InfoPath receive data connection command to execute a&amp;nbsp;sproc &lt;strong&gt;with a parameter&lt;/strong&gt;, it will only work if the unbalanced commit is there. Add a &amp;#39;begin transaction&amp;#39;, and you will find yourself where I was, hanging your head and weeping softly into your teacup. If anyone can explain this behavior, do comment away, please, as it makes &lt;strong&gt;me&lt;/strong&gt; mildly unbalanced. &lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=34750" width="1" height="1"&gt;</content><author><name>Hilary Stoupa</name><uri>http://www.infopathdev.com/members/Hilary-Stoupa.aspx</uri></author><category term="Secondary Data Connections" scheme="http://www.infopathdev.com/blogs/hilary/archive/tags/Secondary+Data+Connections/default.aspx" /><category term="JScript" scheme="http://www.infopathdev.com/blogs/hilary/archive/tags/JScript/default.aspx" /><category term="C#" scheme="http://www.infopathdev.com/blogs/hilary/archive/tags/C_2300_/default.aspx" /><category term="Unique Id" scheme="http://www.infopathdev.com/blogs/hilary/archive/tags/Unique+Id/default.aspx" /></entry><entry><title>URL Input Parameters 'Gotcha'</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/hilary/archive/2008/10/07/url-input-parameters-gotcha.aspx" /><id>http://www.infopathdev.com/blogs/hilary/archive/2008/10/07/url-input-parameters-gotcha.aspx</id><published>2008-10-08T01:55:00Z</published><updated>2008-10-08T01:55:00Z</updated><content type="html">&lt;p&gt;Ah, input parameters. It is so nice to be able to open a form with some values already filled in, isn&amp;#39;t it? Except, of course, when they don&amp;#39;t work. And to say they are a bear to debug would be an enormous understatement.&lt;/p&gt;
&lt;p&gt;I was recently helping a forum user with a form using input parameters passed in from a URL. Every thing &lt;strong&gt;looked&lt;/strong&gt; exactly right. But try as we might, we kept getting an error:&lt;br /&gt;&lt;img title="Given Key Not Present error" alt="Given Key Not Present error" src="http://www.infopathdev.com/blogs/hilary/Input%20Parameters/GivenKeyNotPresent.png" /&gt;&lt;/p&gt;
&lt;p&gt;And the field we wanted filled from the parameter remained blank:&lt;br /&gt;&lt;img title="Sad and blank field" style="WIDTH:249px;HEIGHT:43px;" height="43" alt="Sad and blank field" src="http://www.infopathdev.com/blogs/hilary/Input%20Parameters/BlankDepartment.png" width="249" /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;For purposes of demonstration, I&amp;#39;ll mopdify &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.office.infopath.loadingeventargs.inputparameters.aspx"&gt;this&lt;/a&gt; code posted on MSDN for the LoadingEventArgs.InputParameters property.&lt;/p&gt;
&lt;p&gt;My form code looks like this:&lt;/p&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; FormEvents_Loading(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, &lt;font color="#2b91af"&gt;LoadingEventArgs&lt;/font&gt; e)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;try&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;string&lt;/font&gt; vDept = e.InputParameters[&lt;font color="#a31515"&gt;&amp;quot;Dept&amp;quot;&lt;/font&gt;];&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;XPathNavigator&lt;/font&gt; myNav = CreateNavigator();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myNav.SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:TestForm/my:Department&amp;quot;&lt;/font&gt;, NamespaceManager).SetValue(vDept);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;catch&lt;/font&gt; (&lt;font color="#2b91af"&gt;Exception&lt;/font&gt; ex)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;MessageBox&lt;/font&gt;.Show(ex.Message);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:10pt;LINE-HEIGHT:115%;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;Now, you&amp;#39;ll notice that unlike the MSDN sample, I&amp;#39;ve added a little bit of error handling. Without it, the input parameters fail silently. While that may be the preferred end result, while trying to figure out why your parameter isn&amp;#39;t populating a form field -- well, without a try/catch, you&amp;#39;ll end up weeping and smacking your forehead against your desk. We don&amp;#39;t want that. &lt;/p&gt;
&lt;p&gt;Basically, all this code does is get the value of the input parameter, and set a form field to that value. To use&amp;nbsp;the parameter, you&amp;#39;d add it to the URL for the template, like this:&lt;br /&gt;&lt;a href="http://sharepointsite/FormLibrary/Forms/template.xsn?Dept=Accounting"&gt;http://SharePointSite/FormLibrary/Forms/template.xsn?Dept=Accounting&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sadly, follow this exactly and you will get the &amp;quot;Given Key not Present&amp;quot; error. Want to know why? Because on its way to your form, that parameter key got dropped to lower case. So did the value. So we &lt;strong&gt;think &lt;/strong&gt;we are sending in &lt;strong&gt;&amp;#39;Dept&amp;#39;&lt;/strong&gt; and &lt;strong&gt;&amp;#39;Accounting&amp;#39;&lt;/strong&gt; but in fact we are sending &lt;strong&gt;&amp;#39;dept&amp;#39;&lt;/strong&gt; and &lt;strong&gt;&amp;#39;accounting&amp;#39;&lt;/strong&gt;. Modify the code to:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt; vDept = e.InputParameters[&lt;font color="#a31515"&gt;&amp;quot;dept&amp;quot;&lt;/font&gt;];&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Guess what? No more error. Republish the form, and you can use the same input parameters from the URL above to open the form with the Department field filled:&lt;br /&gt;&lt;img title="Populated field" style="WIDTH:247px;HEIGHT:52px;" height="52" alt="Populated field" src="http://www.infopathdev.com/blogs/hilary/Input%20Parameters/PopulatedDepartment.png" width="247" /&gt;&lt;br /&gt;Do you notice the case of the word &lt;strong&gt;&amp;#39;accounting&amp;#39;&lt;/strong&gt;? The value passed was &lt;strong&gt;&amp;#39;Accounting&amp;#39;&lt;/strong&gt; -- and that is what lead me to guess that the parameter key was being changed to lower case as well.&lt;/p&gt;
&lt;p&gt;One last thing to keep in mind with URL input parameters -- be aware you are going to have to do some clean up if you are passing in strings like this. First off, you are going to lose any capitalization. Secondly, if you are passing in a string with spaces, be prepared to clean out all the &lt;strong&gt;&amp;#39;%20&amp;#39;&lt;/strong&gt;s.&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=32913" width="1" height="1"&gt;</content><author><name>Hilary Stoupa</name><uri>http://www.infopathdev.com/members/Hilary-Stoupa.aspx</uri></author><category term="Input Parameters" scheme="http://www.infopathdev.com/blogs/hilary/archive/tags/Input+Parameters/default.aspx" /></entry><entry><title>So you want to send an email.....</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/hilary/archive/2008/08/24/so-you-want-to-send-an-email.aspx" /><id>http://www.infopathdev.com/blogs/hilary/archive/2008/08/24/so-you-want-to-send-an-email.aspx</id><published>2008-08-24T17:52:00Z</published><updated>2008-08-24T17:52:00Z</updated><content type="html">&lt;p&gt;There are two very common email scenarios with InfoPath. One -- you want to use an email submit connection but modify some things before the email goes out (common reasons: you&amp;#39;d like to use form fields in the Information section which is not currently supported in the user interface, you need more flexibility to determine who the email should be sent to, you have other logic you need to perform prior to sending the form) and two -- you don&amp;#39;t want to submit the form via email, you just need to send an email to someone with some form information in it. &lt;/p&gt;
&lt;p&gt;Let&amp;#39;s address both of those scenarios. A few caveats first&amp;nbsp;--for scenario 1, I haven&amp;#39;t included error handling. If your user cancels the submit when they see the preview of the email to be submitted, they are going to get some ugly messages. I&amp;#39;m sorry. It is Sunday afternoon, and I&amp;#39;m being a slacker. Also, for scenario 2, &amp;nbsp;your form will have to be full trust to do cool stuff like send an email that isn&amp;#39;t&amp;nbsp;based on a submit connection -- at least, mine had to be.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here is the data source I&amp;#39;ll be using for all the samples, just so you know what the xpath is pointing to:&lt;br /&gt;&lt;img title="Data Source" style="WIDTH:274px;HEIGHT:124px;" height="124" alt="Data Source" src="http://www.infopathdev.com/blogs/hilary/Send%20Email/SendEmail1.png" width="274" /&gt;&lt;/p&gt;
&lt;p&gt;Okay, without further ado, scenario 1:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Modify email submit properties before submitting:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In this scenario, I have added an email submit connection to my form. My form submit options are set to use my email connection:&lt;/p&gt;
&lt;p&gt;&lt;img title="Submit Options dialog" style="WIDTH:389px;HEIGHT:342px;" height="342" alt="Submit Options dialog" src="http://www.infopathdev.com/blogs/hilary/Send%20Email/SendEmailSubmitOptions.png" width="389" /&gt;&lt;/p&gt;
&lt;p&gt;Also, I&amp;#39;ve added a button to my form that I&amp;#39;m &lt;strong&gt;*calling*&lt;/strong&gt; a submit button, but in reality, it is just an ordinary old button I&amp;#39;ve labeled Submit:&lt;/p&gt;
&lt;p&gt;&lt;img title="Button Properties" style="WIDTH:433px;HEIGHT:309px;" height="309" alt="Button Properties" src="http://www.infopathdev.com/blogs/hilary/Send%20Email/SendEmailSubmitButton1.png" width="433" /&gt;&lt;/p&gt;
&lt;p&gt;C# -- 2007 Object Model&lt;/p&gt;
&lt;blockquote&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; btnSubmit_Clicked(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, &lt;font color="#2b91af"&gt;ClickedEventArgs&lt;/font&gt; e)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;//get the value from the text field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;string&lt;/font&gt; interestingText = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:textField&amp;quot;&lt;/font&gt;, NamespaceManager).Value;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;//get the value from the date field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;string&lt;/font&gt; date = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:dateField&amp;quot;&lt;/font&gt;, NamespaceManager).Value;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;//get that email submit connection&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#2b91af"&gt;EmailSubmitConnection&lt;/font&gt; emailSubmit = (&lt;font color="#2b91af"&gt;EmailSubmitConnection&lt;/font&gt;)&lt;font color="#0000ff"&gt;this&lt;/font&gt;.DataConnections[&lt;font color="#a31515"&gt;&amp;quot;Email Submit&amp;quot;&lt;/font&gt;];&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;//set the introduction with a value from the form&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emailSubmit.Introduction = &lt;font color="#a31515"&gt;&amp;quot;This is my shiny new introduction with a date from my form: &amp;quot;&lt;/font&gt; + date + &lt;font color="#a31515"&gt;&amp;quot;\nAnd an interesting value from a text field as well: &amp;quot;&lt;/font&gt; + interestingText;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;//submit the form&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;this&lt;/font&gt;.Submit();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;VB.Net -- 2007 Object Model&lt;/p&gt;
&lt;blockquote&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Public&lt;/font&gt; &lt;font color="#0000ff"&gt;Sub&lt;/font&gt; btnSubmit_Clicked(&lt;font color="#0000ff"&gt;ByVal&lt;/font&gt; sender &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;Object&lt;/font&gt;, &lt;font color="#0000ff"&gt;ByVal&lt;/font&gt; e &lt;font color="#0000ff"&gt;As&lt;/font&gt; ClickedEventArgs)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;&amp;#39;get the value from the text field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;Dim&lt;/font&gt; interestingText &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;String&lt;/font&gt; = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:textField&amp;quot;&lt;/font&gt;, NamespaceManager).Value&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;&amp;#39;get the value from the date field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;Dim&lt;/font&gt; dateField &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;String&lt;/font&gt; = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:dateField&amp;quot;&lt;/font&gt;, NamespaceManager).Value&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;&amp;#39;get that email submit connection&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;Dim&lt;/font&gt; emailSubmit &lt;font color="#0000ff"&gt;As&lt;/font&gt; EmailSubmitConnection = &lt;font color="#0000ff"&gt;Me&lt;/font&gt;.DataConnections(&lt;font color="#a31515"&gt;&amp;quot;Email Submit&amp;quot;&lt;/font&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;&amp;#39;set the introduction with a value from the form&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emailSubmit.Introduction = &lt;font color="#a31515"&gt;&amp;quot;This is my shiny new introduction with a date from my form: &amp;quot;&lt;/font&gt; + dateField + System.Environment.NewLine + &lt;font color="#a31515"&gt;&amp;quot;And an interesting value from a text field as well: &amp;quot;&lt;/font&gt; + interestingText&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;&amp;#39;submit the form&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;Me&lt;/font&gt;.Submit()&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;End&lt;/font&gt; &lt;font color="#0000ff"&gt;Sub&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;And, scenario 2:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Send an email with some form information in it:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We are going to use a button click event (I named my button btnEmail -- nothing against the oh-so-intuitive IP default names like &amp;#39;CTRL15_23&amp;#39; but I am fond of slightly more meaningful names) and send an email to someone with information from the textField and the dateField in our form.&lt;/p&gt;
&lt;p&gt;C# -- 2007 Object Model&lt;/p&gt;
&lt;blockquote&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; btnEmail_Clicked(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, &lt;font color="#2b91af"&gt;ClickedEventArgs&lt;/font&gt; e)&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;//get the value from the text field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;string&lt;/font&gt; subject = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:textField&amp;quot;&lt;/font&gt;, NamespaceManager).Value;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;//get the value from the date field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;string&lt;/font&gt; date = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:dateField&amp;quot;&lt;/font&gt;, NamespaceManager).Value;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;//set the information for the message&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#2b91af"&gt;MailAddress&lt;/font&gt; from = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;MailAddress&lt;/font&gt;(&amp;quot;&lt;font color="#a31515"&gt;someone@someplace.com&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#2b91af"&gt;MailAddress&lt;/font&gt; to = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;MailAddress&lt;/font&gt;(&lt;font color="#a31515"&gt;&amp;quot;someoneElse@someplace.com&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#2b91af"&gt;MailMessage&lt;/font&gt; msgmail = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;MailMessage&lt;/font&gt;(from, to);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;//the body has the date variable we created in it, the subject uses the value from our text box -- mind you, this is all made up for a demo, so it isn&amp;#39;t all that interesting&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgmail.Body = &lt;font color="#a31515"&gt;&amp;quot;A new form was created on &amp;quot;&lt;/font&gt; + date + &lt;font color="#a31515"&gt;&amp;quot;. Please review it.&amp;quot;&lt;/font&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgmail.Subject = subject;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;//this stuff is going to vary depending on your setup&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#2b91af"&gt;SmtpClient&lt;/font&gt; client = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;SmtpClient&lt;/font&gt;(&lt;font color="#a31515"&gt;&amp;quot;smtp.someServer.com&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; client.Credentials = &lt;font color="#0000ff"&gt;new&lt;/font&gt; System.Net.&lt;font color="#2b91af"&gt;NetworkCredential&lt;/font&gt;(&lt;font color="#a31515"&gt;&amp;quot;someUserName&amp;quot;&lt;/font&gt;, &lt;font color="#a31515"&gt;&amp;quot;somePassword&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;//send that baby out&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; client.Send(msgmail);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;At the top of your code window, with the other &amp;quot;using&amp;quot; statements, be sure to add this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;font face="Courier New"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;"&gt; System.Net.Mail;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/font&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;VB.Net -- 2007 Object Model&lt;/p&gt;
&lt;blockquote&gt;&lt;font size="2"&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Public&lt;/font&gt; &lt;font color="#0000ff"&gt;Sub&lt;/font&gt; btnEmail_Clicked(&lt;font color="#0000ff"&gt;ByVal&lt;/font&gt; sender &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;Object&lt;/font&gt;, &lt;font color="#0000ff"&gt;ByVal&lt;/font&gt; e &lt;font color="#0000ff"&gt;As&lt;/font&gt; ClickedEventArgs)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;&amp;#39;get the value from the text field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;Dim&lt;/font&gt; subject &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;String&lt;/font&gt; = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:textField&amp;quot;&lt;/font&gt;, NamespaceManager).Value&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;&amp;#39;get the value from the date field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;Dim&lt;/font&gt; dateField &lt;font color="#0000ff"&gt;as&lt;/font&gt; &lt;font color="#0000ff"&gt;String&lt;/font&gt; = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:dateField&amp;quot;&lt;/font&gt;, NamespaceManager).Value&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;&amp;#39;set the information for the message&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;Dim&lt;/font&gt; fromAddress &lt;font color="#0000ff"&gt;As&lt;/font&gt; MailAddress = &lt;font color="#0000ff"&gt;New&lt;/font&gt; MailAddress(&lt;font color="#a31515"&gt;&amp;quot;&lt;font style="FONT-SIZE:10pt;" color="#a31515"&gt;someone@someplace.com&lt;/font&gt;&amp;quot;&lt;/font&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;Dim&lt;/font&gt; toAddress &lt;font color="#0000ff"&gt;As&lt;/font&gt; MailAddress = &lt;font color="#0000ff"&gt;New&lt;/font&gt; MailAddress(&lt;font style="FONT-SIZE:10pt;" color="#a31515"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#a31515"&gt;someoneElse@someplace.com&amp;quot;&lt;/font&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;Dim&lt;/font&gt; msgmail &lt;font color="#0000ff"&gt;As&lt;/font&gt; MailMessage = &lt;font color="#0000ff"&gt;New&lt;/font&gt; MailMessage(fromAddress, toAddress)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;&amp;#39;the body has the date variable we created in it, the subject uses the value from our text box -- mind you, this is all made up for a demo, so it isn&amp;#39;t all that interesting&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgmail.Body = &lt;font color="#a31515"&gt;&amp;quot;A new form was created on &amp;quot;&lt;/font&gt; + dateField + &lt;font color="#a31515"&gt;&amp;quot;. Please review it.&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgmail.Subject = subject&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;&amp;#39;this stuff is going to vary depending on your setup&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#0000ff"&gt;Dim&lt;/font&gt; client &lt;font color="#0000ff"&gt;As&lt;/font&gt; SmtpClient = &lt;font color="#0000ff"&gt;New&lt;/font&gt; SmtpClient(&lt;font color="#a31515"&gt;&amp;quot;smtp.someServer.com&amp;quot;&lt;/font&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; client.Credentials = &lt;font color="#0000ff"&gt;New&lt;/font&gt; System.Net.NetworkCredential(&lt;font color="#a31515"&gt;&lt;font style="FONT-SIZE:10pt;" color="#a31515"&gt;&amp;quot;someUserName&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;font style="FONT-SIZE:10pt;" color="#a31515"&gt;&amp;quot;somePassword&amp;quot;&lt;/font&gt;&lt;/font&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&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 color="#008000"&gt;&amp;#39;send that baby out&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; client.Send(msgmail)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;End&lt;/font&gt; &lt;font color="#0000ff"&gt;Sub&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;At the top of your code window, with the other &amp;quot;Imports&amp;quot; statements, be sure to add this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;mso-no-proof:yes;"&gt;Imports&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;mso-no-proof:yes;"&gt; System.Net.Mail&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Now promise to only use your newfound powers for good, and have fun!&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=31659" width="1" height="1"&gt;</content><author><name>Hilary Stoupa</name><uri>http://www.infopathdev.com/members/Hilary-Stoupa.aspx</uri></author><category term="Email Submit" scheme="http://www.infopathdev.com/blogs/hilary/archive/tags/Email+Submit/default.aspx" /><category term="Email" scheme="http://www.infopathdev.com/blogs/hilary/archive/tags/Email/default.aspx" /></entry><entry><title>InfoPath 2007 Object Model Map</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/hilary/archive/2008/08/22/infopath-2007-object-model-poster.aspx" /><id>http://www.infopathdev.com/blogs/hilary/archive/2008/08/22/infopath-2007-object-model-poster.aspx</id><published>2008-08-22T23:43:00Z</published><updated>2008-08-22T23:43:00Z</updated><content type="html">&lt;p&gt;Okay, I know I&amp;#39;m always a few days late to the picnic, but I found &lt;a href="http://www.infopathdev.com/blogs/hilary/InfoPathObjectModelMap.pdf"&gt;this&lt;/a&gt; great poster while online looking for something else, and thought this would be a great place to share it. Now if I just had a humongous color printer, I&amp;#39;d finally be able to gussy up my office properly....&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=31655" width="1" height="1"&gt;</content><author><name>Hilary Stoupa</name><uri>http://www.infopathdev.com/members/Hilary-Stoupa.aspx</uri></author><category term="2007 Object Model" scheme="http://www.infopathdev.com/blogs/hilary/archive/tags/2007+Object+Model/default.aspx" /></entry><entry><title>Take Two -- Mapping Data from Nested Repeating Tables to a SQL Database - DBXL v2.2</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/hilary/archive/2008/07/25/second-take-mapping-data-from-nested-repeating-tables-to-a-sql-database-dbxl-v2-2.aspx" /><id>http://www.infopathdev.com/blogs/hilary/archive/2008/07/25/second-take-mapping-data-from-nested-repeating-tables-to-a-sql-database-dbxl-v2-2.aspx</id><published>2008-07-25T15:59:00Z</published><updated>2008-07-25T15:59:00Z</updated><content type="html">&lt;p&gt;In an&amp;nbsp;&lt;a href="http://www.infopathdev.com/blogs/hilary/archive/2008/07/11/mapping-data-from-nested-repeating-tables-to-a-sql-database-dbxl-v2-2.aspx"&gt;earlier post&lt;/a&gt;, we looked at mapping data from nested repeating tables using DBXL v2.2. In that post, the SQL table associated with the main repeating form group used an identity column that was set to auto-increment for the key. DBXL, however, currently follows a delete and reshred model (see &lt;a href="http://www.infopathdev.com/files/folders/mapping__shredding/entry30703.aspx"&gt;this&lt;/a&gt; post by Ernesto for more information) which would mean that our identity would change every time the document was updated.&lt;/p&gt;
&lt;p&gt;While this may not be an issue for some scenarios, there could be cases where you would prefer your identity to remain a bit more stable. One way to work around this is to use the DocId (generated by DBXL) for your key -- after all, that&amp;nbsp;number remains the same for the life of the document. However, in our initial example, we have mapped a repeating group for the node path for our main table (Projects). We could have one to umpteen projects for a given DocId!&lt;/p&gt;
&lt;p&gt;I am sure there are many creative solutions to this problem, but only one occurred to me, and that is what I&amp;#39;d like to walk through in this post. What if we modify our Projects table to use a composite key consisting of the DocId and a ProjectId that identifies each project group in the document? We could do away with auto-incrementing completely. The foreign key on the Issues table would relate back to the DocId and ProjectId, and then, upon re-shredding, none of our identites will change. &lt;/p&gt;
&lt;p&gt;First, let&amp;#39;s modify our form schema:&lt;br /&gt;&lt;img title="Form with modified schema" style="WIDTH:355px;HEIGHT:290px;" height="290" alt="Form with modified schema" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataFormSchemaWithId.png" width="355" /&gt;&lt;/p&gt;
&lt;p&gt;We&amp;#39;ve added a ProjectId field. The datatype is integer, and it has a default value of &lt;strong&gt;count(../preceding-sibling::my:Project/my:ProjectId) + 1&lt;/strong&gt; which will give us a running count of our groups -- the field&amp;#39;s value will be 1 for the first group inserted, 2 for the second, and so forth.&lt;/p&gt;
&lt;p&gt;Now we need to modify our database. Add a column called ReportId (we&amp;#39;ll map the DocId to it) to both the Projects and the Issues tables. In the Projects table, remove the Identity specification from the ProjectId column, as we&amp;#39;ll now be mapping our new ProjectId field to that column.&lt;br /&gt;&lt;img title="Projects Table with new column" style="WIDTH:339px;HEIGHT:179px;" height="179" alt="Projects Table with new column" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataProjectsTable.png" width="339" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title="Issues Table with new column" style="WIDTH:338px;HEIGHT:138px;" height="138" alt="Issues Table with new column" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataIssuesTable.png" width="338" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We need to set ReportId and ProjectId as a composite key for the Projects table. While your table is open in design view, right click anywhere on the canvas and select &lt;strong&gt;Indexes/Keys&lt;/strong&gt;:&lt;br /&gt;&lt;img title="Right click menu" style="WIDTH:180px;HEIGHT:215px;" height="215" alt="Right click menu" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataSelectIndex.png" width="180" /&gt;&lt;/p&gt;
&lt;p&gt;When the &lt;strong&gt;Indexes/Keys&lt;/strong&gt; window opens, you can select the button next to the &lt;strong&gt;Columns&lt;/strong&gt; field in the &lt;strong&gt;General&lt;/strong&gt; section and select the columns you wish to use for your composite key:&lt;br /&gt;&lt;img title="Indexes Keys window" style="WIDTH:563px;HEIGHT:357px;" height="357" alt="Indexes Keys window" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataIndexesKeys.png" width="563" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title="Selecting columns" style="WIDTH:461px;HEIGHT:318px;" height="318" alt="Selecting columns" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MapppingDataIndexPrimary.png" width="461" /&gt;&lt;/p&gt;
&lt;p&gt;Don&amp;#39;t forget to modify the foreign key relationship with the issues table:&lt;br /&gt;&lt;img title="Foreign Key for Issues Table" style="WIDTH:461px;HEIGHT:347px;" height="347" alt="Foreign Key for Issues Table" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataForeignKey.png" width="461" /&gt;&lt;/p&gt;
&lt;p&gt;To our mapping! We need to make a few changes -- we are going to map ResourceId to the DocId and ProjectId to ProjectId. When you select your columns from the Database Tree, your keys will be marked as such. &lt;br /&gt;&lt;img title="Projects table mapped" style="WIDTH:707px;HEIGHT:240px;" height="240" alt="Projects table mapped" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataProjectsTableMapped.png" width="707" /&gt;&lt;/p&gt;
&lt;p&gt;Don&amp;#39;t forget -- special DBXL fields are available to you for mapping in the Schema Tree:&lt;br /&gt;&lt;img title="Schema tree, DBXL" style="WIDTH:269px;HEIGHT:362px;" height="362" alt="Schema tree, DBXL" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataSchemaTree.png" width="269" /&gt;&lt;/p&gt;
&lt;p&gt;Next, we adjust our Issues mapping to reflect our changes, first setting up our keys:&lt;br /&gt;&lt;img title="Issues keys mapped" style="WIDTH:710px;HEIGHT:129px;" height="129" alt="Issues keys mapped" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataMappingFKey.png" width="710" /&gt;&lt;/p&gt;
&lt;p&gt;And, after we add the rest of the Issues columns, our full map looks like this:&lt;br /&gt;&lt;img title="Fully mapped form" style="WIDTH:740px;HEIGHT:500px;" height="500" alt="Fully mapped form" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataFullMap.png" width="740" /&gt;&lt;/p&gt;
&lt;p&gt;Let&amp;#39;s cut to the fun part. We save our new mapping, and open our form, fill it out and submit it:&lt;br /&gt;&lt;img title="Filled out Status Report" style="WIDTH:790px;HEIGHT:464px;" height="464" alt="Filled out Status Report" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataFilledOutSR.png" width="790" /&gt;&lt;/p&gt;
&lt;p&gt;When you look at the tables, you can see that our DocId is being used for ReportId and the new ProjectId field is providing a ProjectId:&lt;br /&gt;&lt;img title="New Rows, Projects table" style="WIDTH:746px;HEIGHT:109px;" height="109" alt="New Rows, Projects table" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataNewRowsProjects.png" width="746" /&gt;&lt;/p&gt;
&lt;p&gt;And, in Issues, we are relating all of a project&amp;#39;s issues back to it, as well as relating the issues to the report:&lt;br /&gt;&lt;img title="New Rows, Issues table" style="WIDTH:544px;HEIGHT:104px;" height="104" alt="New Rows, Issues table" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataNewRowsIssues.png" width="544" /&gt;&lt;/p&gt;
&lt;p&gt;For greater database integrity, you could use the same approach as we used for Projects to provide the Issues group in the form an identity, and create an IssuesId column in your table. Your primary key for your Issues table could be a composite key consisting of ReportId, ProjectId and IssueId.&lt;/p&gt;
&lt;p&gt;We can now reopen our form that we just submitted and make some changes, as well as adding additional rows:&lt;br /&gt;&lt;img title="Updated form" style="WIDTH:797px;HEIGHT:564px;" height="564" alt="Updated form" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataUpdatedForm.png" width="797" /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Once again, we race to the database, happily clapping our hands, to make sure that all our identities remain unchanged and our new identities are what we would expect:&lt;br /&gt;&lt;img title="Updated Projects Table" style="WIDTH:743px;HEIGHT:103px;" height="103" alt="Updated Projects Table" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataUpdatedRowsProjects.png" width="743" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title="Updated Issues Table" style="WIDTH:555px;HEIGHT:126px;" height="126" alt="Updated Issues Table" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataUpdatedRowsIssues.png" width="555" /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=30855" width="1" height="1"&gt;</content><author><name>Hilary Stoupa</name><uri>http://www.infopathdev.com/members/Hilary-Stoupa.aspx</uri></author><category term="DBXL v2.2" scheme="http://www.infopathdev.com/blogs/hilary/archive/tags/DBXL+v2.2/default.aspx" /><category term="Data Mapping" scheme="http://www.infopathdev.com/blogs/hilary/archive/tags/Data+Mapping/default.aspx" /></entry><entry><title>Mapping Data from Nested Repeating Tables to a SQL Database - DBXL v2.2</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/hilary/archive/2008/07/11/mapping-data-from-nested-repeating-tables-to-a-sql-database-dbxl-v2-2.aspx" /><id>http://www.infopathdev.com/blogs/hilary/archive/2008/07/11/mapping-data-from-nested-repeating-tables-to-a-sql-database-dbxl-v2-2.aspx</id><published>2008-07-11T18:28:00Z</published><updated>2008-07-11T18:28:00Z</updated><content type="html">&lt;p&gt;Sometimes it seems that InfoPath form templates are like snowflakes -- no two are alike. I thought it might be helpful to have more samples of data mapping using DBXL, and figured I may as well&amp;nbsp;try DBXL v2.2 (available for download &lt;a href="http://www.infopathdev.com/files/folders/dbxldownload/entry29778.aspx"&gt;here&lt;/a&gt;). It&amp;#39;s new -- I&amp;#39;m new -- we have a lot in common. I&amp;#39;m also using InfoPath 2007 and SQL Express 2005.&lt;/p&gt;
&lt;p&gt;For this sample, I&amp;#39;ve created a &lt;strong&gt;Status Report&lt;/strong&gt; form (you can download a copy by right-clicking&amp;nbsp;&lt;a href="http://www.infopathdev.com/blogs/hilary/StatusReport.zip"&gt;here&lt;/a&gt;&amp;nbsp;and selecting &amp;quot;Save Target As...&amp;quot;). It has a repeating section for projects, with a nested repeating section for any issues. The main data source looks like this:&lt;br /&gt;&lt;img title="Main Data Source" style="WIDTH:247px;HEIGHT:307px;" height="307" alt="Main Data Source" src="http://www.infopathdev.com/blogs/hilary/MappingData1a.JPG" width="247" /&gt;&lt;/p&gt;
&lt;p&gt;The template has a straightforward design -- a repeating table bound to &lt;strong&gt;Project&lt;/strong&gt; and an optional section bound to &lt;strong&gt;Issues&lt;/strong&gt; with another repeating table bound to &lt;strong&gt;Issue&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In design mode, the template looks like this:&lt;br /&gt;&lt;img title="Design Mode" style="WIDTH:799px;HEIGHT:324px;" height="324" alt="Design Mode" src="http://www.infopathdev.com/blogs/hilary/MappingData2.JPG" width="799" /&gt;&lt;/p&gt;
&lt;p&gt;And in preview:&lt;br /&gt;&lt;img title="Preview Mode" style="WIDTH:847px;HEIGHT:387px;" height="387" alt="Preview Mode" src="http://www.infopathdev.com/blogs/hilary/MappingData3.JPG" width="847" /&gt;&lt;/p&gt;
&lt;p&gt;A couple of points -- my form is configured to submit to my DBXL webservice -- the sample available for download above is not. A tutorial can be found &lt;a href="http://www.infopathdev.com/files/folders/dbxl/entry19566.aspx"&gt;here&lt;/a&gt; if you need help with that. Also, we need to set up a database for the data we&amp;#39;ll be mapping from our form. We want to be sure to use compatible data types when we do that. My form has several date fields that I&amp;#39;ll want to map to datetime SQL columns. We also want to make sure that our columns are the correct size for the data we wish to insert. I asked David Airapetyan for some guidance on database design for mapping the other day and he said: &lt;/p&gt;
&lt;blockquote&gt;&lt;font color="#1f497d"&gt;
&lt;p&gt;As a rule of thumb, you want the data field size to be the maximum of what you expect the user to enter. For example, a phone number will unlikely be more than 30-40 characters even with spaces, country codes and extensions.&lt;/p&gt;
&lt;p&gt;The task of picking the data field size is not trivial. For example, some people have very long names that can break your expectations. When you set up DBXL shredding and the actual field size is greater to what you have specified in the database, a shredding error will occur. One best practice to avoid those issues is to set the maximum textbox length in InfoPath to match your column size in the database.&lt;/p&gt;&lt;/font&gt;&lt;/blockquote&gt;
&lt;p&gt;So, when you create your database column size, if your fields in your form do not have limits, you may want to set them. If you can&amp;#39;t change your form, you may want&amp;nbsp;increase your column size. &lt;/p&gt;
&lt;p&gt;Because of my two repeating groups,&amp;nbsp;I plan to create&amp;nbsp;two tables. I&amp;#39;m naming my datbase &lt;strong&gt;StatusReports&lt;/strong&gt; and my tables&amp;nbsp;&lt;strong&gt;Projects&lt;/strong&gt; and&amp;nbsp;&lt;strong&gt;Issues&lt;/strong&gt;. My &lt;strong&gt;Projects&lt;/strong&gt; table looks like this:&lt;br /&gt;&lt;img title="Projects table design" style="WIDTH:339px;HEIGHT:138px;" height="138" alt="Projects table design" src="http://www.infopathdev.com/blogs/hilary/SQLTableProjects.png" width="339" /&gt;&l