Retrieving Schema Information from the Data Source
Schema information can be retrieved
from a data source using the FillSchema( )
method, which retrieves the schema
information for the SQL statement in the
SelectCommand
. The method adds a
DataTable
to the DataSet
and
adds DataColumn
objects to that table. Finally, it
configures the AllowDBNull
,
AutoIncrement
, MaxLength
,
ReadOnly
, and Unique
properties
of the DataColumn
, based on the data source. While
it configures the AutoIncrement
property, it
doesn’t set the AutoIncrementSeed
and AutoIncrementStep
properties. The
FillSchema( )
method also configures the primary
key and unique constraints for the DataTable
. It
doesn’t configure the
DefaultValue
property.
In addition to an argument specifying the DataSet
argument, the FillSchema( )
method takes an
argument specifying whether the schema is transformed by the table
mappings for the data adapter. Mapping tables and columns is
discussed in more detail later in this chapter
If the FillSchema( )
method is used with a table
that already has schema defined, the original schema
isn’t overwritten. Rather, new columns are added if
they are part of the schema retrieved but don’t
exist in the table.
Finally, if a query returning multiple result sets is specified in
the SelectCommand
, only the schema from the first
result set is used. To fill schemas based on queries with multiple
result sets, use the Fill( )
method with the
MissingSchemaAction
set to
AddWithKey
.
The following example demonstrates ...
Get ADO.NET in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.