<?xml version="1.0" encoding="utf-8"?>
<Type Name="DbCommandBuilder" FullName="System.Data.Common.DbCommandBuilder">
  <TypeSignature Language="C#" Value="public abstract class DbCommandBuilder : System.ComponentModel.Component" />
  <AssemblyInfo>
    <AssemblyName>System.Data</AssemblyName>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.ComponentModel.Component</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <since version=".NET 2.0" />
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>The <see cref="T:System.Data.Common.DbCommandBuilder" /> class is provided for the convenience of provider writers creating their own command builders. By inheriting from this class, developers can implement provider specific behavior in their own code.</para>
      <para>The <see cref="T:System.Data.Common.DbDataAdapter" /> does not automatically generate the SQL statements required to reconcile changes made to a <see cref="T:System.Data.DataSet" /> with the associated data source. However, you can create a <see cref="T:System.Data.Common.DbCommandBuilder" /> object to automatically generate SQL statements for single-table updates if you set the <see cref="P:System.Data.Common.DbDataAdapter.SelectCommand" /> property of the <see cref="T:System.Data.Common.DbDataAdapter" />. Then, any additional SQL statements that you do not set are generated by the <see cref="T:System.Data.Common.DbCommandBuilder" />.</para>
      <para>The <see cref="T:System.Data.Common.DbCommandBuilder" /> registers itself as a listener for <see cref="E:System.Data.OleDb.OleDbDataAdapter.RowUpdating" /> events whenever you set the <see cref="P:System.Data.Common.DbCommandBuilder.DataAdapter" /> property. You can only associate one <see cref="T:System.Data.Common.DbDataAdapter" /> or <see cref="T:System.Data.Common.DbCommandBuilder" /> object with each other at one time.</para>
      <para>To generate INSERT, UPDATE, or DELETE statements, the <see cref="T:System.Data.Common.DbCommandBuilder" /> uses the <see cref="P:System.Data.Common.DbDataAdapter.SelectCommand" /> property to retrieve a required set of metadata automatically. If you change the <see cref="P:System.Data.Common.DbDataAdapter.SelectCommand" /> after the metadata has been retrieved (for example, after the first update), you should call the <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> method to update the metadata.</para>
      <para>The SelectCommand must also return at least one primary key or unique column. If none exist, an <see cref="T:System.InvalidOperationException" /> exception is generated, and the commands are not generated.</para>
      <para>The <see cref="T:System.Data.Common.DbCommandBuilder" /> also uses the <see cref="P:System.Data.Common.DbCommand.Connection" />, <see cref="P:System.Data.Common.DbCommand.CommandTimeout" />, and <see cref="P:System.Data.Common.DbCommand.Transaction" /> properties referenced by the <see cref="P:System.Data.Common.DbDataAdapter.SelectCommand" />. The user should call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if any of these properties are modified, or if the <see cref="P:System.Data.Common.DbDataAdapter.SelectCommand" /> itself is replaced. Otherwise the <see cref="P:System.Data.Common.DbDataAdapter.InsertCommand" />, <see cref="P:System.Data.Common.DbDataAdapter.UpdateCommand" />, and <see cref="P:System.Data.Common.DbDataAdapter.DeleteCommand" /> properties retain their previous values.</para>
      <para>If you call <see cref="M:System.ComponentModel.Component.Dispose" />, the <see cref="T:System.Data.Common.DbCommandBuilder" /> is disassociated from the <see cref="T:System.Data.Common.DbDataAdapter" />, and the generated commands are no longer used.</para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Automatically generates single-table commands used to reconcile changes made to a <see cref="T:System.Data.DataSet" /> with the associated database. This is an abstract class that can only be inherited.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected DbCommandBuilder ();" />
      <MemberType>Constructor</MemberType>
      <Parameters />
      <Docs>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of a class that inherits from the <see cref="T:System.Data.Common.DbCommandBuilder" /> class. </para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="ApplyParameterInfo">
      <MemberSignature Language="C#" Value="protected abstract void ApplyParameterInfo (System.Data.Common.DbParameter parameter, System.Data.DataRow row, System.Data.StatementType statementType, bool whereClause);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parameter" Type="System.Data.Common.DbParameter" />
        <Parameter Name="row" Type="System.Data.DataRow" />
        <Parameter Name="statementType" Type="System.Data.StatementType" />
        <Parameter Name="whereClause" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method allows an implementation of the <see cref="T:System.Data.Common.DbCommandBuilder" /> class to handle provider-specific parameter properties.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Allows the provider implementation of the <see cref="T:System.Data.Common.DbCommandBuilder" /> class to handle additional parameter properties.</para>
        </summary>
        <param name="parameter">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Data.Common.DbParameter" /> to which the additional modifications are applied. </param>
        <param name="row">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Data.DataRow" /> from the schema table provided by <see cref="M:System.Data.Common.DbDataReader.GetSchemaTable" />. </param>
        <param name="statementType">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of command being generated; INSERT, UPDATE or DELETE. </param>
        <param name="whereClause">
          <attribution license="cc4" from="Microsoft" modified="false" />true if the parameter is part of the update or delete WHERE clause, false if it is part of the insert or update values. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="CatalogLocation">
      <MemberSignature Language="C#" Value="public virtual System.Data.Common.CatalogLocation CatalogLocation { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DefaultValue(System.Data.Common.CatalogLocation.Start)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Data.Common.CatalogLocation</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Sets or gets the <see cref="T:System.Data.Common.CatalogLocation" /> for an instance of the <see cref="T:System.Data.Common.DbCommandBuilder" /> class.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="CatalogSeparator">
      <MemberSignature Language="C#" Value="public virtual string CatalogSeparator { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DefaultValue(".")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Sets or gets a string used as the catalog separator for an instance of the <see cref="T:System.Data.Common.DbCommandBuilder" /> class.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="ConflictOption">
      <MemberSignature Language="C#" Value="public virtual System.Data.ConflictOption ConflictOption { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DefaultValue(System.Data.ConflictOption.CompareAllSearchableValues)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Data.ConflictOption</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Specifies which <see cref="T:System.Data.ConflictOption" /> is to be used by the <see cref="T:System.Data.Common.DbCommandBuilder" />.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="DataAdapter">
      <MemberSignature Language="C#" Value="public System.Data.Common.DbDataAdapter DataAdapter { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Data.Common.DbDataAdapter</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.Data.Common.DbCommandBuilder" /> registers itself as a listener for <see cref="E:System.Data.OleDb.OleDbDataAdapter.RowUpdating" /> events that are generated by the <see cref="T:System.Data.Common.DbDataAdapter" /> specified in this property.</para>
          <para>When you create a new instance of <see cref="T:System.Data.Common.DbCommandBuilder" />, any existing <see cref="T:System.Data.Common.DbCommandBuilder" /> associated with this <see cref="T:System.Data.Common.DbDataAdapter" /> is released.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets a <see cref="T:System.Data.Common.DbDataAdapter" /> object for which Transact-SQL statements are automatically generated.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Dispose">
      <MemberSignature Language="C#" Value="protected override void Dispose (bool disposing);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="disposing" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is called by the public <see cref="Overload:System.Data.Common.DbCommandBuilder.Dispose" /> method and the Finalize method. <see cref="Overload:System.Data.Common.DbCommandBuilder.Dispose" /> invokes the protected <see cref="M:System.Data.Common.DbCommandBuilder.Dispose(System.Boolean)" /> method with the disposing parameter set to true. Finalize invokes Dispose with disposing set to false.</para>
          <para>When the <paramref name="disposing" /> parameter is true, this method releases all resources held by any managed objects that this <see cref="T:System.Data.Common.DbCommandBuilder" /> references. This method invokes the <see cref="Overload:System.Data.Common.DbCommandBuilder.Dispose" /> method of each referenced object.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Releases the unmanaged resources used by the <see cref="T:System.Data.Common.DbCommandBuilder" /> and optionally releases the managed resources.</para>
        </summary>
        <param name="disposing">
          <attribution license="cc4" from="Microsoft" modified="false" />true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetDeleteCommand">
      <MemberSignature Language="C#" Value="public System.Data.Common.DbCommand GetDeleteCommand ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.Common.DbCommand</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An application can use the <see cref="M:System.Data.Common.DbCommandBuilder.GetDeleteCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.Common.DbCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.Common.DbCommandBuilder.GetDeleteCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.Common.DbCommandBuilder.GetDeleteCommand" /> and modify the command text, and then explicitly set that on the <see cref="T:System.Data.Common.DbDataAdapter" />.</para>
          <para>After the SQL statement is first generated, the application must explicitly call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if it changes the statement in any way. Otherwise, the <see cref="M:System.Data.Common.DbCommandBuilder.GetDeleteCommand" /> will still be using information from the previous statement, which might not be correct. The SQL statements are first generated either when the application calls <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.Common.DbCommandBuilder.GetDeleteCommand" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.Common.DbCommand" /> object required to perform deletions at the data source.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.Common.DbCommand" /> object required to perform deletions.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetDeleteCommand">
      <MemberSignature Language="C#" Value="public System.Data.Common.DbCommand GetDeleteCommand (bool option);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.Common.DbCommand</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="option" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="option">To be added.</param>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An application can use the <see cref="M:System.Data.Common.DbCommandBuilder.GetDeleteCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.Common.DbCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.Common.DbCommandBuilder.GetDeleteCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.Common.DbCommandBuilder.GetDeleteCommand" /> and modify the command text, and then explicitly set that on the <see cref="T:System.Data.Common.DbDataAdapter" />. </para>
          <para>After the SQL statement is first generated, the application must explicitly call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if it changes the statement in any way. Otherwise, the <see cref="M:System.Data.Common.DbCommandBuilder.GetDeleteCommand" /> will still be using information from the previous statement, which might not be correct. The SQL statements are first generated either when the application calls <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.Common.DbCommandBuilder.GetDeleteCommand" />.</para>
          <para>The default behavior, when generating parameter names, is to use @p1, @p2, and so on for the various parameters. Passing true for the <paramref name="useColumnsForParameterNames" /> parameter allows you to force the <see cref="T:System.Data.Common.DbCommandBuilder" /> to generate parameters based on the column names instead. This succeeds only if the following conditions are met:</para>
          <list type="bullet">
            <item>
              <para>The <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterNameMaxLength" /> has been specified and its length is equal to or greater than the generated parameter name.</para>
            </item>
            <item>
              <para>The generated parameter name meets the criteria specified in the <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterNamePattern" /> regular expression.</para>
            </item>
            <item>
              <para>A <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterMarkerFormat" /> is specified.</para>
            </item>
          </list>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.Common.DbCommand" /> object required to perform deletions at the data source, optionally using columns for parameter names.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.Common.DbCommand" /> object required to perform deletions.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetInsertCommand">
      <MemberSignature Language="C#" Value="public System.Data.Common.DbCommand GetInsertCommand ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.Common.DbCommand</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An application can use the <see cref="M:System.Data.Common.DbCommandBuilder.GetInsertCommand" /> method for informational or troubleshooting purposes because it returns the text of the <see cref="T:System.Data.Common.DbCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.Common.DbCommandBuilder.GetInsertCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.Common.DbCommandBuilder.GetInsertCommand" /> and modify the command text, and then explicitly set that on the <see cref="T:System.Data.Common.DbDataAdapter" />.</para>
          <para>After the SQL statement is first generated, the application must explicitly call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if it changes the statement in any way. Otherwise, the <see cref="M:System.Data.Common.DbCommandBuilder.GetInsertCommand" /> will still be using information from the previous statement, which might not be correct. The SQL statements are first generated either when the application calls <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.Common.DbCommandBuilder.GetInsertCommand" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.Common.DbCommand" /> object required to perform insertions at the data source.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.Common.DbCommand" /> object required to perform insertions.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetInsertCommand">
      <MemberSignature Language="C#" Value="public System.Data.Common.DbCommand GetInsertCommand (bool option);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.Common.DbCommand</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="option" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="option">To be added.</param>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An application can use the <see cref="M:System.Data.Common.DbCommandBuilder.GetInsertCommand" /> method for informational or troubleshooting purposes because it returns the text of the <see cref="T:System.Data.Common.DbCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.Common.DbCommandBuilder.GetInsertCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.Common.DbCommandBuilder.GetInsertCommand" /> and modify the command text, and then explicitly set that on the <see cref="T:System.Data.Common.DbDataAdapter" />.</para>
          <para>After the SQL statement is first generated, the application must explicitly call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if it changes the statement in any way. Otherwise, the <see cref="M:System.Data.Common.DbCommandBuilder.GetInsertCommand" /> will still be using information from the previous statement, which might not be correct. The SQL statements are first generated either when the application calls <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.Common.DbCommandBuilder.GetInsertCommand" />.</para>
          <para>The default behavior, when generating parameter names, is to use @p1, @p2, and so on for the various parameters. Passing true for the <paramref name="useColumnsForParameterNames" /> parameter allows you to force the <see cref="T:System.Data.Common.DbCommandBuilder" /> to generate parameters based on the column names instead. Generation of the parameters based on column names succeeds only if the following conditions are met:</para>
          <list type="bullet">
            <item>
              <para>The <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterNameMaxLength" /> has been specified and its length is equal to or greater than the generated parameter name.</para>
            </item>
            <item>
              <para>The generated parameter name meets the criteria specified in the <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterNamePattern" /> regular expression.</para>
            </item>
            <item>
              <para>A <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterMarkerFormat" /> is specified.</para>
            </item>
          </list>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.Common.DbCommand" /> object required to perform insertions at the data source, optionally using columns for parameter names.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.Common.DbCommand" /> object required to perform insertions.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetParameterName">
      <MemberSignature Language="C#" Value="protected abstract string GetParameterName (int parameterOrdinal);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parameterOrdinal" Type="System.Int32" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the name of the specified parameter in the format of @p#. Use when building a custom command builder.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The name of the parameter with the specified number appended as part of the parameter name.</para>
        </returns>
        <param name="parameterOrdinal">
          <attribution license="cc4" from="Microsoft" modified="false" />The number to be included as part of the parameter's name..</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetParameterName">
      <MemberSignature Language="C#" Value="protected abstract string GetParameterName (string parameterName);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parameterName" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the full parameter name, given the partial parameter name.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The full parameter name corresponding to the partial parameter name requested.</para>
        </returns>
        <param name="parameterName">
          <attribution license="cc4" from="Microsoft" modified="false" />The partial name of the parameter.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetParameterPlaceholder">
      <MemberSignature Language="C#" Value="protected abstract string GetParameterPlaceholder (int parameterOrdinal);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parameterOrdinal" Type="System.Int32" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is intended for use by provider writers building a custom command builder.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the placeholder for the parameter in the associated SQL statement.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The name of the parameter with the specified number appended.</para>
        </returns>
        <param name="parameterOrdinal">
          <attribution license="cc4" from="Microsoft" modified="false" />The number to be included as part of the parameter's name.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetSchemaTable">
      <MemberSignature Language="C#" Value="protected virtual System.Data.DataTable GetSchemaTable (System.Data.Common.DbCommand cmd);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataTable</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="cmd" Type="System.Data.Common.DbCommand" />
      </Parameters>
      <Docs>
        <param name="cmd">To be added.</param>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is intended for use by provider writers building a custom command builder.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the schema table for the <see cref="T:System.Data.Common.DbCommandBuilder" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Data.DataTable" /> that represents the schema for the specific <see cref="T:System.Data.Common.DbCommand" />.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetUpdateCommand">
      <MemberSignature Language="C#" Value="public System.Data.Common.DbCommand GetUpdateCommand ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.Common.DbCommand</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An application can use the <see cref="M:System.Data.Common.DbCommandBuilder.GetUpdateCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.Common.DbCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.Common.DbCommandBuilder.GetUpdateCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.Common.DbCommandBuilder.GetUpdateCommand" /> and modify the command text, and then explicitly set that on the <see cref="T:System.Data.Common.DbDataAdapter" />.</para>
          <para>After the SQL statement is first generated, the application must explicitly call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if it changes the statement in any way. Otherwise, the <see cref="M:System.Data.Common.DbCommandBuilder.GetUpdateCommand" /> will still be using information from the previous statement, which might not be correct. The SQL statements are first generated either when the application calls <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.Common.DbCommandBuilder.GetUpdateCommand" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.Common.DbCommand" /> object required to perform updates at the data source.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.Common.DbCommand" /> object required to perform updates.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetUpdateCommand">
      <MemberSignature Language="C#" Value="public System.Data.Common.DbCommand GetUpdateCommand (bool option);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.Common.DbCommand</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="option" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="option">To be added.</param>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An application can use the <see cref="M:System.Data.Common.DbCommandBuilder.GetUpdateCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.Common.DbCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.Common.DbCommandBuilder.GetUpdateCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.Common.DbCommandBuilder.GetUpdateCommand" /> and modify command text, and then explicitly set that on the <see cref="T:System.Data.Common.DbDataAdapter" />.</para>
          <para>After the SQL statement is first generated, the application must explicitly call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if it changes the statement in any way. Otherwise, the <see cref="M:System.Data.Common.DbCommandBuilder.GetUpdateCommand" /> will still be using information from the previous statement, which might not be correct. The SQL statements are first generated either when the application calls <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.Common.DbCommandBuilder.GetUpdateCommand" />.</para>
          <para>The default behavior, when generating parameter names, is to use @p1, @p2, and so on for the various parameters. Passing true for the <paramref name="useColumnsForParameterNames" /> parameter allows you to force the <see cref="T:System.Data.Common.DbCommandBuilder" /> to generate parameters based on the column names instead. Generation of the parameters based on column names succeeds only if the following conditions are met:</para>
          <list type="bullet">
            <item>
              <para>The <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterNameMaxLength" /> has been specified and its length is equal to or greater than the generated parameter name.</para>
            </item>
            <item>
              <para>The generated parameter name meets the criteria specified in the <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterNamePattern" /> regular expression.</para>
            </item>
            <item>
              <para>A <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterMarkerFormat" /> is specified.</para>
            </item>
          </list>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.Common.DbCommand" /> object required to perform updates at the data source, optionally using columns for parameter names.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.Common.DbCommand" /> object required to perform updates.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="InitializeCommand">
      <MemberSignature Language="C#" Value="protected virtual System.Data.Common.DbCommand InitializeCommand (System.Data.Common.DbCommand command);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.Common.DbCommand</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="command" Type="System.Data.Common.DbCommand" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is intended for use by provider writers building a custom command builder.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Resets the <see cref="P:System.Data.Common.DbCommand.CommandTimeout" />, <see cref="P:System.Data.Common.DbCommand.Transaction" />, <see cref="P:System.Data.Common.DbCommand.CommandType" />, and <see cref="T:System.Data.UpdateRowSource" /> properties on the <see cref="T:System.Data.Common.DbCommand" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Data.Common.DbCommand" /> instance to use for each insert, update, or delete operation. Passing a null value allows the <see cref="M:System.Data.Common.DbCommandBuilder.InitializeCommand(System.Data.Common.DbCommand)" /> method to create a <see cref="T:System.Data.Common.DbCommand" /> object based on the Select command associated with the <see cref="T:System.Data.Common.DbCommandBuilder" />.</para>
        </returns>
        <param name="command">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Data.Common.DbCommand" /> to be used by the command builder for the corresponding insert, update, or delete command.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="QuoteIdentifier">
      <MemberSignature Language="C#" Value="public virtual string QuoteIdentifier (string unquotedIdentifier);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="unquotedIdentifier" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier, including properly escaping any embedded quotes in the identifier.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The quoted version of the identifier. Embedded quotes within the identifier are properly escaped.</para>
        </returns>
        <param name="unquotedIdentifier">
          <attribution license="cc4" from="Microsoft" modified="false" />The original unquoted identifier.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="QuotePrefix">
      <MemberSignature Language="C#" Value="public virtual string QuotePrefix { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DefaultValue("")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Some data sources may have objects that can contain characters such as spaces, commas, and semicolons. To accommodate this capability, use the <see cref="P:System.Data.Common.DbCommandBuilder.QuotePrefix" /> and <see cref="P:System.Data.Common.DbCommandBuilder.QuoteSuffix" /> properties to specify delimiters such as a left bracket and a right bracket to encapsulate the object name.</para>
          <block subset="none" type="note">
            <para>Although you cannot change the <see cref="P:System.Data.Common.DbCommandBuilder.QuotePrefix" /> or <see cref="P:System.Data.Common.DbCommandBuilder.QuoteSuffix" /> properties after an insert, update, or delete command has been generated, you can change their settings after calling the Update method of a <see cref="T:System.Data.Common.DbDataAdapter" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the beginning character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="QuoteSuffix">
      <MemberSignature Language="C#" Value="public virtual string QuoteSuffix { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DefaultValue("")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Some data sources may have objects that can contain characters such as spaces, commas, and semicolons. To accommodate this capability, use the <see cref="P:System.Data.Common.DbCommandBuilder.QuotePrefix" /> and <see cref="P:System.Data.Common.DbCommandBuilder.QuoteSuffix" /> properties to specify delimiters such as a left bracket and a right bracket to encapsulate the object name.</para>
          <block subset="none" type="note">
            <para>Although you cannot change the <see cref="P:System.Data.Common.DbCommandBuilder.QuotePrefix" /> or <see cref="P:System.Data.Common.DbCommandBuilder.QuoteSuffix" /> properties after an insert, update, or delete command has been generated, you can change their settings after calling the Update method of a <see cref="T:System.Data.Common.DbDataAdapter" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the ending character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="RefreshSchema">
      <MemberSignature Language="C#" Value="public virtual void RefreshSchema ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Calling the <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> method effectively removes all the <see cref="T:System.Data.Common.DbCommand" /> objects referred to by the <see cref="P:System.Data.Common.DbDataAdapter.SelectCommand" />,</para>
          <para>
            <see cref="P:System.Data.Common.DbDataAdapter.UpdateCommand" />,</para>
          <para>
            <see cref="P:System.Data.Common.DbDataAdapter.DeleteCommand" />, and</para>
          <para>
            <see cref="P:System.Data.Common.DbDataAdapter.InsertCommand" /> properties.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Clears the commands associated with this <see cref="T:System.Data.Common.DbCommandBuilder" />.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="RowUpdatingHandler">
      <MemberSignature Language="C#" Value="protected void RowUpdatingHandler (System.Data.Common.RowUpdatingEventArgs args);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="args" Type="System.Data.Common.RowUpdatingEventArgs" />
      </Parameters>
      <Docs>
        <param name="args">To be added.</param>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Adds an event handler for the <see cref="E:System.Data.OleDb.OleDbDataAdapter.RowUpdating" /> event.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="SchemaSeparator">
      <MemberSignature Language="C#" Value="public virtual string SchemaSeparator { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DefaultValue(".")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Generally, database servers indicate the schema for an identifier by separating the schema name from the identifier with some character. For example, SQL Server uses a colon, creating complete identifiers such as Person:CustomerName, where "Person" is the schema name and "CustomerName" is the identifier. Setting this property allows developers to modify this behavior.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the character to be used for the separator between the schema identifier and any other identifiers.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="SetAllValues">
      <MemberSignature Language="C#" Value="public bool SetAllValues { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DefaultValue(false)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The UPDATE statement generated by a <see cref="T:System.Data.Common.DbCommandBuilder" /> can include update information about all the columns, or it can include information only about those columns whose values have changed. Setting the <see cref="P:System.Data.Common.DbCommandBuilder.SetAllValues" /> property to true causes the generated UPDATE statement to include all the columns, whether their values have changed or not.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Specifies whether all column values in an update statement are included or only changed ones.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="SetRowUpdatingHandler">
      <MemberSignature Language="C#" Value="protected abstract void SetRowUpdatingHandler (System.Data.Common.DbDataAdapter adapter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="adapter" Type="System.Data.Common.DbDataAdapter" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is intended for use by provider writers building a custom command builder. When a new <see cref="T:System.Data.Common.DbDataAdapter" /> is added to the <see cref="T:System.Data.Common.DbCommandBuilder" />, it is registered for the DbDataAdapter's RowUpdating event. If this method is called again with the same <see cref="T:System.Data.Common.DbDataAdapter" />, the <see cref="T:System.Data.Common.DbCommandBuilder" /> is unregistered for that DbDataAdapter's RowUpdating event.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Registers the <see cref="T:System.Data.Common.DbCommandBuilder" /> to handle the <see cref="E:System.Data.OleDb.OleDbDataAdapter.RowUpdating" /> event for a <see cref="T:System.Data.Common.DbDataAdapter" />. </para>
        </summary>
        <param name="adapter">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Data.Common.DbDataAdapter" /> to be used for the update.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="UnquoteIdentifier">
      <MemberSignature Language="C#" Value="public virtual string UnquoteIdentifier (string quotedIdentifier);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="quotedIdentifier" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Given a quoted identifier, returns the correct unquoted form of that identifier, including properly un-escaping any embedded quotes in the identifier.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The unquoted identifier, with embedded quotes properly un-escaped.</para>
        </returns>
        <param name="quotedIdentifier">
          <attribution license="cc4" from="Microsoft" modified="false" />The identifier that will have its embedded quotes removed.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
  </Members>
</Type>