Article ID: 310128
Article Last Modified on 2/22/2007
APPLIES TO
- Microsoft .NET Framework 1.1 Service Pack 1
- Microsoft ADO.NET 1.1
This article was previously published under Q310128
SUMMARY
The DataAdapter object is optimized for read-only scenarios by default. The Fill method only retrieves the amount of schema that is necessary to populate a DataSet object. To obtain the additional schema that are necessary to update or validate DataSet objects, use one of the following methods for DataSet objects that are populated by the DataAdapater:
- Use the FillSchema method of the DataAdapter.
- Use the AddWithKey enumeration for the MissingSchemaAction property of the DataAdapter.
This article describes how to choose between these two methods when you want to populate updateable DataSet objects with the DataAdapter.
MORE INFORMATION
Setting the MissingSchemaAction property of the DataAdapter to AddWithKey is analogous to using the DataAdapter.FillSchema method. Both methods add schema information about primary keys, AutoIncrement fields, nullable fields, and unique indexes.
When to Use DataAdapter's FillSchema Method
Use the FillSchema method of the DataAdapter if you will be reading the same data multiple times. If you use MissingSchemaAction.AddWithKey, the schema is fetched with every call to the DataAdapter.Fill method.
When to Use DataAdapter's MissingSchemaAction.AddWithKey Method
- Use DataAdapter.MissingSchemaAction.AddWithKey when you are retrieving multiple result sets in a single batch. If you are using the OLE DB .NET Data Provider, the DataAdapter.FillSchema method retrieves schema information for only the first result set when there are multiple SQL SELECT commands in a batch.
- Use DataAdapter.MissingSchemaAction.AddWithKey if you are calling DataAdapter.Fill just one time for a DataSet.
When Not to Use Either FillSchema or MissingSchemaAction.AddWithKey
- Do not use either method when you are obtaining a read-only DataSet to avoid adding unnecessary overhead.
- Do not use either method when you use the Visual Design Tools to generate a DataSet because the code for updateability is already incorporated into the tool-generated DataSet class.
- Do not use either method when you load a DataSet from XML if you want the DataSet to use the XML schema instead of a generated schema.
REFERENCES
For more information, see the following topics in the Microsoft Visual Studio .NET Help documentation:
DataAdapter.Fill Method
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataCommonDataAdapterClassFillTopic.asp
DataAdapter.FillSchema Method
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataCommonDataAdapterClassFillSchemaTopic.asp
DataAdapter.MissingSchemaAction Property
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataCommonDataAdapterClassMissingSchemaActionTopic.asp
MissingSchemaAction Enumeration
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataMissingSchemaActionClassTopic.asp
Loading DataSet Schema Information from XML
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconloadingdatasetschemainformationfromxml.asp
For additional information, click the article numbers below to view the articles in the Microsoft Knowledge Base:
301248 HOW TO: Update a Database from a DataSet Object by Using Visual Basic .NET
301216 HOW TO: Populate a DataSet Object from a Database by Using Visual Basic .NET
Keywords: kbdatabase kbinfo KB310128