<?xml version="1.0" encoding="utf-8"?>
<Type Name="SqlCommandBuilder" FullName="System.Data.SqlClient.SqlCommandBuilder">
  <TypeSignature Language="C#" Maintainer="auto" Value="public sealed class SqlCommandBuilder : System.Data.Common.DbCommandBuilder" />
  <AssemblyInfo>
    <AssemblyName>System.Data</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey>
    <AssemblyVersion>1.0.3300.0</AssemblyVersion>
    <AssemblyVersion>1.0.5000.0</AssemblyVersion>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement>
  <Base>
    <BaseTypeName>System.Data.Common.DbCommandBuilder</BaseTypeName>
  </Base>
  <Interfaces>
  </Interfaces>
  <Docs>
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>The <see cref="T:System.Data.SqlClient.SqlDataAdapter" /> does not automatically generate the Transact-SQL statements required to reconcile changes made to a <see cref="T:System.Data.DataSet" /> with the associated instance of SQL Server. However, you can create a <see cref="T:System.Data.SqlClient.SqlCommandBuilder" /> object to automatically generate Transact-SQL statements for single-table updates if you set the <see cref="P:System.Data.SqlClient.SqlDataAdapter.SelectCommand" /> property of the <see cref="T:System.Data.SqlClient.SqlDataAdapter" />. Then, any additional Transact-SQL statements that you do not set are generated by the <see cref="T:System.Data.SqlClient.SqlCommandBuilder" />.</para>
      <para>The <see cref="T:System.Data.SqlClient.SqlCommandBuilder" /> registers itself as a listener for <see cref="E:System.Data.SqlClient.SqlDataAdapter.RowUpdating" /> events whenever you set the <see cref="P:System.Data.SqlClient.SqlCommandBuilder.DataAdapter" /> property. You can only associate one <see cref="T:System.Data.SqlClient.SqlDataAdapter" /> or <see cref="T:System.Data.SqlClient.SqlCommandBuilder" /> object with each other at one time.</para>
      <para>To generate INSERT, UPDATE, or DELETE statements, the <see cref="T:System.Data.SqlClient.SqlCommandBuilder" /> uses the <see cref="P:System.Data.SqlClient.SqlDataAdapter.SelectCommand" /> property to retrieve a required set of metadata automatically. If you change the <see cref="P:System.Data.SqlClient.SqlDataAdapter.SelectCommand" /> after the metadata has been retrieved, such as 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 are present, an InvalidOperation exception is generated, and the commands are not generated.</para>
      <para>The <see cref="T:System.Data.SqlClient.SqlCommandBuilder" /> also uses the <see cref="P:System.Data.SqlClient.SqlCommand.Connection" />, <see cref="P:System.Data.SqlClient.SqlCommand.CommandTimeout" />, and <see cref="P:System.Data.SqlClient.SqlCommand.Transaction" /> properties referenced by the <see cref="P:System.Data.SqlClient.SqlDataAdapter.SelectCommand" />. The user should call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if one or more of these properties are modified, or if the <see cref="P:System.Data.SqlClient.SqlDataAdapter.SelectCommand" /> itself is replaced. Otherwise the <see cref="P:System.Data.SqlClient.SqlDataAdapter.InsertCommand" />, <see cref="P:System.Data.SqlClient.SqlDataAdapter.UpdateCommand" />, and <see cref="P:System.Data.SqlClient.SqlDataAdapter.DeleteCommand" /> properties retain their previous values.</para>
      <para>If you call <see cref="M:System.ComponentModel.Component.Dispose" />, the <see cref="T:System.Data.SqlClient.SqlCommandBuilder" /> is disassociated from the <see cref="T:System.Data.SqlClient.SqlDataAdapter" />, and the generated commands are no longer used.</para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Automatically generates single-table commands that are used to reconcile changes made to a <see cref="T:System.Data.DataSet" /> with the associated SQL Server database. This class cannot be inherited. </para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public SqlCommandBuilder ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Data.SqlClient.SqlCommandBuilder" /> class.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public SqlCommandBuilder (System.Data.SqlClient.SqlDataAdapter adapter);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="adapter" Type="System.Data.SqlClient.SqlDataAdapter" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.Data.SqlClient.SqlCommandBuilder" /> registers itself as a listener for <see cref="E:System.Data.SqlClient.SqlDataAdapter.RowUpdating" /> events that are generated by the <see cref="T:System.Data.SqlClient.SqlDataAdapter" /> specified in this property.</para>
          <para>When you create a new instance of <see cref="T:System.Data.SqlClient.SqlCommandBuilder" />, any existing <see cref="T:System.Data.SqlClient.SqlCommandBuilder" /> associated with this <see cref="T:System.Data.SqlClient.SqlDataAdapter" /> is released.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Data.SqlClient.SqlCommandBuilder" /> class with the associated <see cref="T:System.Data.SqlClient.SqlDataAdapter" /> object.</para>
        </summary>
        <param name="adapter">
          <attribution license="cc4" from="Microsoft" modified="false" />The name of the <see cref="T:System.Data.SqlClient.SqlDataAdapter" />. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="ApplyParameterInfo">
      <MemberSignature Language="C#" Value="protected override void ApplyParameterInfo (System.Data.Common.DbParameter parameter, System.Data.DataRow datarow, System.Data.StatementType statementType, bool whereClause);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parameter" Type="System.Data.Common.DbParameter" />
        <Parameter Name="datarow" Type="System.Data.DataRow" />
        <Parameter Name="statementType" Type="System.Data.StatementType" />
        <Parameter Name="whereClause" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="parameter">To be added.</param>
        <param name="datarow">To be added.</param>
        <param name="statementType">To be added.</param>
        <param name="whereClause">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="CatalogLocation">
      <MemberSignature Language="C#" Value="public override System.Data.Common.CatalogLocation CatalogLocation { set; get; }" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Data.Common.CatalogLocation</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <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.SqlClient.SqlCommandBuilder" /> class.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="CatalogSeparator">
      <MemberSignature Language="C#" Value="public override string CatalogSeparator { set; get; }" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <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.SqlClient.SqlCommandBuilder" /> class.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="DataAdapter">
      <MemberSignature Language="C#" Value="public System.Data.SqlClient.SqlDataAdapter DataAdapter { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.SqlClient.SqlDataAdapter</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <value>To be added: an object of type 'SqlDataAdapter'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.Data.SqlClient.SqlCommandBuilder" /> registers itself as a listener for <see cref="E:System.Data.SqlClient.SqlDataAdapter.RowUpdating" /> events that are generated by the <see cref="T:System.Data.SqlClient.SqlDataAdapter" /> specified in this property.</para>
          <para>When you create a new instance of <see cref="T:System.Data.SqlClient.SqlCommandBuilder" />, any existing <see cref="T:System.Data.SqlClient.SqlCommandBuilder" /> associated with this <see cref="T:System.Data.SqlClient.SqlDataAdapter" /> is released.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets a <see cref="T:System.Data.SqlClient.SqlDataAdapter" /> object for which Transact-SQL statements are automatically generated.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DefaultValue(null)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="DeriveParameters">
      <MemberSignature Language="C#" Value="public static void DeriveParameters (System.Data.SqlClient.SqlCommand command);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="command" Type="System.Data.SqlClient.SqlCommand" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>DeriveParameters overwrites any existing parameter information for the SqlDbCommand.</para>
          <para>DeriveParameters requires an additional call to the database to obtain the information. If the parameter information is known in advance, it is more efficient to populate the parameters collection by setting the information explicitly.</para>
          <para>You can only use DeriveParameters with stored procedures. You cannot use DeriveParameters with extended stored procedures. You cannot use DeriveParameters to populate the <see cref="T:System.Data.SqlClient.SqlParameterCollection" /> with arbitrary Transact-SQL statements, such as a parameterized SELECT statement.</para>
          <para>For more information, see <format type="text/html"><a href="537d8a2c-d40b-4000-83eb-bc1fcc93f707">Using Stored Procedures with a Command</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Retrieves parameter information from the stored procedure specified in the <see cref="T:System.Data.SqlClient.SqlCommand" /> and populates the <see cref="P:System.Data.SqlClient.SqlCommand.Parameters" /> collection of the specified <see cref="T:System.Data.SqlClient.SqlCommand" /> object.</para>
        </summary>
        <param name="command">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Data.SqlClient.SqlCommand" /> referencing the stored procedure from which the parameter information is to be derived. The derived parameters are added to the <see cref="P:System.Data.SqlClient.SqlCommand.Parameters" /> collection of the <see cref="T:System.Data.SqlClient.SqlCommand" />. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <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>
        <param name="disposing">To be added: an object of type 'bool'</param>
        <summary>To be added</summary>
        <remarks>To be added</remarks>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetDeleteCommand">
      <MemberSignature Language="C#" Value="public System.Data.SqlClient.SqlCommand GetDeleteCommand ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.SqlClient.SqlCommand</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An application can use the <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetDeleteCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.SqlClient.SqlCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetDeleteCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetDeleteCommand" /> and modify the <see cref="P:System.Data.SqlClient.SqlCommand.CommandTimeout" /> value, and then explicitly set that on the <see cref="T:System.Data.SqlClient.SqlDataAdapter" />.</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.SqlClient.SqlCommandBuilder.GetDeleteCommand" /> will still be using information from the previous statement, which might not be correct. The SQL statements are first generated when the application calls either <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetDeleteCommand" />.</para>
          <para>For more information, see <format type="text/html"><a href="6e3fb8b5-373b-4f9e-ab03-a22693df8e91">Automatically Generating Commands</a></format>. </para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.SqlClient.SqlCommand" /> object required to perform deletions on the database.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.SqlClient.SqlCommand" /> object required to perform deletions.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetDeleteCommand">
      <MemberSignature Language="C#" Value="public System.Data.SqlClient.SqlCommand GetDeleteCommand (bool useColumnsForParameterNames);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.SqlClient.SqlCommand</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="useColumnsForParameterNames" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An application can use the <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetDeleteCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.SqlClient.SqlCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetDeleteCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetDeleteCommand" /> and modify the <see cref="P:System.Data.SqlClient.SqlCommand.CommandTimeout" /> value, and then explicitly set that on the <see cref="T:System.Data.SqlClient.SqlDataAdapter" />.</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.SqlClient.SqlCommandBuilder.GetDeleteCommand" /> will still be using information from the previous statement, which might not be correct. The SQL statements are first generated when the application calls either <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.SqlClient.SqlCommandBuilder.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 lets you force the <see cref="T:System.Data.OleDb.OleDbCommandBuilder" /> 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" /> returned from the GetSchema method call and found in the <see cref="F:System.Data.Common.DbMetaDataCollectionNames.DataSourceInformation" /> collection 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" /> returned from the GetSchema method call and found in the <see cref="F:System.Data.Common.DbMetaDataCollectionNames.DataSourceInformation" /> collection regular expression.</para>
            </item>
            <item>
              <para>A <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterMarkerFormat" /> returned from the GetSchema method call and found in the <see cref="F:System.Data.Common.DbMetaDataCollectionNames.DataSourceInformation" /> collection is specified.</para>
            </item>
          </list>
          <para>For more information, see <format type="text/html"><a href="6e3fb8b5-373b-4f9e-ab03-a22693df8e91">Automatically Generating Commands</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.SqlClient.SqlCommand" /> object that is required to perform deletions on the database.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.SqlClient.SqlCommand" /> object that is required to perform deletions.</para>
        </returns>
        <param name="useColumnsForParameterNames">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, generate parameter names matching column names if possible. If false, generate @p1, @p2, and so on.</param>
      </Docs>
    </Member>
    <Member MemberName="GetInsertCommand">
      <MemberSignature Language="C#" Value="public System.Data.SqlClient.SqlCommand GetInsertCommand ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.SqlClient.SqlCommand</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An application can use the <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetInsertCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.SqlClient.SqlCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetInsertCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetInsertCommand" /> and modify the <see cref="P:System.Data.SqlClient.SqlCommand.CommandTimeout" /> value, and then explicitly set that on the <see cref="T:System.Data.SqlClient.SqlDataAdapter" />.</para>
          <para>After the Transact-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.SqlClient.SqlCommandBuilder.GetInsertCommand" /> will still be using information from the previous statement, which might not be correct. The Transact-SQL statements are first generated when the application calls either <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetInsertCommand" />.</para>
          <para>For more information, see <format type="text/html"><a href="6e3fb8b5-373b-4f9e-ab03-a22693df8e91">Automatically Generating Commands</a></format>. </para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.SqlClient.SqlCommand" /> object required to perform insertions on the database.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.SqlClient.SqlCommand" /> object required to perform insertions.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetInsertCommand">
      <MemberSignature Language="C#" Value="public System.Data.SqlClient.SqlCommand GetInsertCommand (bool useColumnsForParameterNames);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.SqlClient.SqlCommand</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="useColumnsForParameterNames" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An application can use the <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetInsertCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.SqlClient.SqlCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetInsertCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetInsertCommand" /> and modify the <see cref="P:System.Data.SqlClient.SqlCommand.CommandTimeout" /> value, and then explicitly set that on the <see cref="T:System.Data.SqlClient.SqlDataAdapter" />.</para>
          <para>After the Transact-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.SqlClient.SqlCommandBuilder.GetInsertCommand" /> will still be using information from the previous statement, which might not be correct. The Transact-SQL statements are first generated when the application calls either <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.SqlClient.SqlCommandBuilder.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 lets you force the <see cref="T:System.Data.OleDb.OleDbCommandBuilder" /> 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" /> returned from the GetSchema method call and found in the <see cref="F:System.Data.Common.DbMetaDataCollectionNames.DataSourceInformation" /> collection 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" /> returned from the GetSchema method call and found in the <see cref="F:System.Data.Common.DbMetaDataCollectionNames.DataSourceInformation" /> collection regular expression.</para>
            </item>
            <item>
              <para>A <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterMarkerFormat" /> returned from the GetSchema method call and found in the <see cref="F:System.Data.Common.DbMetaDataCollectionNames.DataSourceInformation" /> collection is specified.</para>
            </item>
          </list>
          <para>For more information, see <format type="text/html"><a href="6e3fb8b5-373b-4f9e-ab03-a22693df8e91">Automatically Generating Commands</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.SqlClient.SqlCommand" /> object that is required to perform insertions on the database.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.SqlClient.SqlCommand" /> object that is required to perform insertions.</para>
        </returns>
        <param name="useColumnsForParameterNames">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, generate parameter names matching column names if possible. If false, generate @p1, @p2, and so on.</param>
      </Docs>
    </Member>
    <Member MemberName="GetParameterName">
      <MemberSignature Language="C#" Value="protected override string GetParameterName (int parameterOrdinal);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parameterOrdinal" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="parameterOrdinal">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetParameterName">
      <MemberSignature Language="C#" Value="protected override string GetParameterName (string parameterName);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parameterName" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="parameterName">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetParameterPlaceholder">
      <MemberSignature Language="C#" Value="protected override string GetParameterPlaceholder (int parameterOrdinal);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parameterOrdinal" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="parameterOrdinal">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetSchemaTable">
      <MemberSignature Language="C#" Value="protected override System.Data.DataTable GetSchemaTable (System.Data.Common.DbCommand srcCommand);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.DataTable</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="srcCommand" Type="System.Data.Common.DbCommand" />
      </Parameters>
      <Docs>
        <param name="srcCommand">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetUpdateCommand">
      <MemberSignature Language="C#" Value="public System.Data.SqlClient.SqlCommand GetUpdateCommand ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.SqlClient.SqlCommand</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An application can use the <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetUpdateCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.SqlClient.SqlCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetUpdateCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetUpdateCommand" /> and modify the <see cref="P:System.Data.SqlClient.SqlCommand.CommandTimeout" /> value, and then explicitly set that on the <see cref="T:System.Data.SqlClient.SqlDataAdapter" />.</para>
          <para>After the Transact-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.SqlClient.SqlCommandBuilder.GetUpdateCommand" /> will still be using information from the previous statement, which might not be correct. The Transact-SQL statements are first generated when the application calls either <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetUpdateCommand" />.</para>
          <para>For more information, see <format type="text/html"><a href="6e3fb8b5-373b-4f9e-ab03-a22693df8e91">Automatically Generating Commands</a></format>. </para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.SqlClient.SqlCommand" /> object required to perform updates on the database.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.SqlClient.SqlCommand" /> object that is required to perform updates.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetUpdateCommand">
      <MemberSignature Language="C#" Value="public System.Data.SqlClient.SqlCommand GetUpdateCommand (bool useColumnsForParameterNames);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.SqlClient.SqlCommand</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="useColumnsForParameterNames" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An application can use the <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetUpdateCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.SqlClient.SqlCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetUpdateCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.SqlClient.SqlCommandBuilder.GetUpdateCommand" /> and modify the <see cref="P:System.Data.SqlClient.SqlCommand.CommandTimeout" /> value, and then explicitly set that on the <see cref="T:System.Data.SqlClient.SqlDataAdapter" />.</para>
          <para>After the Transact-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.SqlClient.SqlCommandBuilder.GetUpdateCommand" /> will still be using information from the previous statement, which might not be correct. The Transact-SQL statements are first generated when the application calls either <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.SqlClient.SqlCommandBuilder.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 lets you force the <see cref="T:System.Data.OleDb.OleDbCommandBuilder" /> 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" /> returned from the GetSchema method call and found in the <see cref="F:System.Data.Common.DbMetaDataCollectionNames.DataSourceInformation" /> collection 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" /> returned from the GetSchema method call and found in the <see cref="F:System.Data.Common.DbMetaDataCollectionNames.DataSourceInformation" /> collection regular expression.</para>
            </item>
            <item>
              <para>A <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterMarkerFormat" /> returned from the GetSchema method call and found in the <see cref="F:System.Data.Common.DbMetaDataCollectionNames.DataSourceInformation" /> collection is specified.</para>
            </item>
          </list>
          <para>For more information, see <format type="text/html"><a href="6e3fb8b5-373b-4f9e-ab03-a22693df8e91">Automatically Generating Commands</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.SqlClient.SqlCommand" /> object required to perform updates on the database.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.SqlClient.SqlCommand" /> object required to perform updates.</para>
        </returns>
        <param name="useColumnsForParameterNames">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, generate parameter names matching column names if possible. If false, generate @p1, @p2, and so on.</param>
      </Docs>
    </Member>
    <Member MemberName="InitializeCommand">
      <MemberSignature Language="C#" Value="protected override System.Data.Common.DbCommand InitializeCommand (System.Data.Common.DbCommand command);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.Common.DbCommand</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="command" Type="System.Data.Common.DbCommand" />
      </Parameters>
      <Docs>
        <param name="command">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="QuoteIdentifier">
      <MemberSignature Language="C#" Value="public override string QuoteIdentifier (string unquotedIdentifier);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="unquotedIdentifier" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <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. This includes correctly 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 correctly escaped.</para>
        </returns>
        <param name="unquotedIdentifier">
          <attribution license="cc4" from="Microsoft" modified="false" />The original unquoted identifier.</param>
      </Docs>
    </Member>
    <Member MemberName="QuotePrefix">
      <MemberSignature Language="C#" Value="public override string QuotePrefix { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <value>To be added: an object of type 'string'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <block subset="none" type="note">
            <para>Although you cannot change the <see cref="P:System.Data.SqlClient.SqlCommandBuilder.QuotePrefix" /> or <see cref="P:System.Data.SqlClient.SqlCommandBuilder.QuoteSuffix" /> properties after an insert, update, or delete command has been generated, you can change their settings after calling the Update method of a DataAdapter.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the starting character or characters to use when specifying SQL Server database objects, such as tables or columns, whose names contain characters such as spaces or reserved tokens.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="QuoteSuffix">
      <MemberSignature Language="C#" Value="public override string QuoteSuffix { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <value>To be added: an object of type 'string'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <block subset="none" type="note">
            <para>Although you cannot change the <see cref="P:System.Data.SqlClient.SqlCommandBuilder.QuotePrefix" /> or <see cref="P:System.Data.SqlClient.SqlCommandBuilder.QuoteSuffix" /> properties after an insert, update, or delete operation has been generated, you can change their settings after calling the Update method of a DataAdapter.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the ending character or characters to use when specifying SQL Server database objects, such as tables or columns, whose names contain characters such as spaces or reserved tokens.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="RefreshSchema">
      <MemberSignature Language="C#" Value="public void RefreshSchema ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Clears the commands that are associated with this command builder.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="SchemaSeparator">
      <MemberSignature Language="C#" Value="public override string SchemaSeparator { set; get; }" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Generally, database servers indicate the schema for a identifier by separating the schema name from the identifier with some character. For example, SQL Server uses a period, creating complete identifiers such as Person.CustomerName, where "Person" is the schema name and "CustomerName" is the identifier. Setting this property lets developers 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>
    </Member>
    <Member MemberName="SetRowUpdatingHandler">
      <MemberSignature Language="C#" Value="protected override void SetRowUpdatingHandler (System.Data.Common.DbDataAdapter adapter);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="adapter" Type="System.Data.Common.DbDataAdapter" />
      </Parameters>
      <Docs>
        <param name="adapter">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="UnquoteIdentifier">
      <MemberSignature Language="C#" Value="public override string UnquoteIdentifier (string quotedIdentifier);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="quotedIdentifier" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Given a quoted identifier, returns the correct unquoted form of that identifier. This includes correctly unescaping any embedded quotes in the identifier.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The unquoted identifier, with embedded quotes properly unescaped.</para>
        </returns>
        <param name="quotedIdentifier">
          <attribution license="cc4" from="Microsoft" modified="false" />The identifier that will have its embedded quotes removed.</param>
      </Docs>
    </Member>
  </Members>
</Type>