title: String default parameter value issue after conversion from VB6 to VB.Net
body: <p>We have a legacy component that has been converted from VB6 to VB.Net.</p>
  
  <p>The VB component was called from an ASPX page using Request("param") to pass optional parameters to function calls. That means the value is null/nothing if the parameter is not present.</p>
  
  <p>The parameters were then added to an ADODB call of a store procedure using <code>Parameters.Append</code>.</p>
  
  <p>When used from VB6 missing, Request("param") values were coerced into empty strings when passed to the VB6 component. This meant that the ADODB call was satisfied (for required parameters).</p>
  
  <p>When the code was ported to VB.Net, the null Request("param") values are now passed as null values (VB nothing?) and <code>Parameters.Append</code> skips adding the value if it is <code>nothing</code>. This caused the stored procedure calls to break as a required param was missing.</p>
  
  <h2>My question is:</h2>
  
  <p><strong>If we change the component's function parameters to be <code>optional</code> and have <code>paramname as string = ""</code> defaults, will a null/nothing value be converted to an empty string, or is null/nothing treated differently to a parameter being simply missing?</strong></p>
  
  <p><em>Apologies for the use of the term null, but 99% of my work is C# :)</em></p>