This class serves two functions. It can automatically retrieve
information about the parameters used by a stored procedure (through
the DeriveParameters( ) method), and it can
automatically generate matching UPDATE, INSERT, and DELETE SQL
commands based on a SELECT query. Note that both features, while
convenient, suffer from some problems. First of all, the
DeriveParameters( ) method requires an extra call
to the database. The command-generation methods
don't produce optimal SQL syntax: by default they
select records by matching every field, not just a single key value;
they don't support join queries; and they
can't use stored procedures. Chapter 30 explains how to use the
SqlCommandBuilder .
Note that if you want to derive update commands, you
don't supply the SELECT command directly. Instead,
you supply a SqlDataAdapter , either by setting
the DataAdapter property or using the constructor
that accepts a SqlDataAdapter . The
SqlCommandBuilder uses the
SqlDataAdapter.SelectCommand property to retrieve
the required meta data from the data source. Note that, in order for
the commands to be generated, this Select command must return at
least one primary key or unique column. If you change the
SqlDataAdapter.SelectCommand after the meta data
has been retrieved, you should call the RefreshSchema(
) method.
public sealed class SqlCommandBuilder : System.ComponentModel.Component {
// Public Constructors
public SqlCommandBuilder( );
public SqlCommandBuilder( SqlDataAdapter adapter);
// Public Instance Properties
public SqlDataAdapter DataAdapter{set; get; }
public string QuotePrefix{set; get; }
public string QuoteSuffix{set; get; }
// Public Static Methods
public static void DeriveParameters( SqlCommand command);
// Public Instance Methods
public SqlCommand GetDeleteCommand( );
public SqlCommand GetInsertCommand( );
public SqlCommand GetUpdateCommand( );
public void RefreshSchema( );
// Protected Instance Methods
protected override void Dispose( bool disposing); // overrides System.ComponentModel.Component
}