Advanced SQL Generation Options Dialog Box
Allows you to control how SQL statements or stored procedures are created for an adapter. The dialog box appears when you click the Advanced Options button in the SQL statements page of one of the data wizards. The options in this dialog box all pertain to the statements or procedures that are called as part of an update procedure (for example, CustomersTableAdapter.Update(DataTable)).
User Interface Element List
Generate Insert, Update, and Delete statements
When selected, the wizard will create SQL statements or stored procedures for the adapter's UpdateCommand, InsertCommand, and DeleteCommand objects. (The specifics of the statement or procedure to be generated are controlled by the Choose a Query Type pane of the wizard.) If this check box is cleared, the remaining options in the dialog box are disabled, as they do not apply.You typically clear this check box under the following circumstances:
The adapter will be used only to read data from a data source, not write it back. By clearing this box, you reduce the amount of code in your form or component.
You will fill in the commands yourself after the wizard has finished.
If the box is cleared and there are no statements or stored procedures for the UpdateCommand, InsertCommand, or DeleteCommand objects, calling the data adapter's Update method does nothing.
Use optimistic concurrency
When selected, the wizard generates a SQL command with a WHERE clause that matches the value of every column in the record being updated against the corresponding record in the database.Note
This option is available only if the Generate Insert, Update, and Delete Commands check box is selected.
For example, the syntax for an update statement generated using this option might be:
UPDATE Customers SET CustomerID = ?, CompanyName = ?, Phone = ? WHERE (CustomerID = ?) AND (CompanyName = ?) AND (Phone = ? OR ? IS NULL AND Phone IS NULL);
If this check box is cleared, the syntax would be:
UPDATE Customers SET CustomerID = ?, CompanyName = ?, Phone = ? WHERE (CustomerID = ?)
The effect of checking each column value is that the command fails if any column has changed, which happens if another user has changed the record since it was read into your dataset. If the option is not set and the WHERE clause simply locates the record, the changes made by other users can potentially be overridden without warning by your update.
Refresh the data table
When selected, the wizard generates a Select statement for each Update and Insert command.Note
This option is available only if the Generate Insert, Update, and Delete Commands check box is selected.
The Select statement is added to the corresponding command object in the adapter and is executed immediately after the Update or Insert command has finished. The Select statement is configured to return just one record, namely the updated version of the record that has just been updated.
Note
You can add multiple statements to the CommandText property of an adapter's command object by delimiting the statements with a semicolon (;).
Getting a new version of the record writes updated column values for that record into the dataset, including:
Columns where the database fills in a default value.
Auto-increment columns.
Timestamp columns.
Columns affected by the result of a database trigger.
Because this option causes two statements to be executed for each update (the update statement and a following Select statement), it can be inefficient when a majority of records in a dataset are being updated. In that case, it is more efficient to simply refill the entire data table at once after all updates have been performed.
Note
Refreshing the data table is only supported on databases that support batching of SQL statements. For example, Microsoft Access cannot refresh the data table in the same command that performs other operations.
See Also
Concepts
What's New in Data Application Development
Binding Windows Forms Controls to Data in Visual Studio
Preparing Your Application to Receive Data
Fetching Data into Your Application
Binding Controls to Data in Visual Studio
Editing Data in Your Application