title: Default values for AdoNetAppender parameter
body: <p>I am using log4net with AdoNetAppender. It logs all log info into a table. This table actually has 2 Integer columns (can be null). </p>
  
  <p>Here is the relevant part of my log4net config:</p>
  
  <pre class="lang-xml prettyprint-override"><code>&lt;commandText value="INSERT INTO ActivityLog ([Date],[Thread],[Level],[Logger],[Message],[DealID]) 
                   VALUES (@log_date,@thread,@log_level,@logger,@message,@DealID)" /&gt;
  
   //other parameters hten DealID
  &lt;parameter&gt;
        &lt;parameterName value="@DealID" /&gt;
        &lt;dbType value="Int32" /&gt;
         &lt;layout type="log4net.Layout.PatternLayout"&gt;
          &lt;conversionPattern value="%property{DealID}" /&gt;
        &lt;/layout&gt;
      &lt;/parameter&gt;
  </code></pre>
  
  <p>What I found out was if I don't explicitly set using something like <code>log4net.ThreadContext.Properties["DealID"] = DealID;</code> it throws me an exception:</p>
  
  <pre><code>System.FormatException occurred
    Message="Failed to convert parameter value from a String to a Int32."
    Source="System.Data"
    StackTrace:
         at System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType)
    InnerException: System.FormatException
         Message="Input string was not in a correct format."
         Source="mscorlib"
         StackTrace:
              at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer&amp; number, NumberFormatInfo info, Boolean parseDecimal)
              at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
              at System.String.System.IConvertible.ToInt32(IFormatProvider provider)
              at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
              at System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType)
         InnerException: 
  </code></pre>
  
  <p>I would have to set it like:</p>
  
  <p><code>log4net.ThreadContext.Properties["DealID"] = 0;</code></p>
  
  <p>Is there anyway that I can set a default parameter value in my log4net config for this Int32 field so that I don't need to set it explicitly to 0 if no value is supplied? And it makes me wonder why it does not happen to fields which are set as varchar (though no value is supplied to them).</p>