SqlDataAdapter.InsertCommand Свойство
Определение
Возвращает или задает инструкцию Transact-SQL или хранимую процедуру, используемую для вставки новых записей в источник данных.Gets or sets a Transact-SQL statement or stored procedure to insert new records into the data source.
public:
property System::Data::SqlClient::SqlCommand ^ InsertCommand { System::Data::SqlClient::SqlCommand ^ get(); void set(System::Data::SqlClient::SqlCommand ^ value); };
public System.Data.SqlClient.SqlCommand InsertCommand { get; set; }
[System.Data.DataSysDescription("DbDataAdapter_InsertCommand")]
public System.Data.SqlClient.SqlCommand InsertCommand { get; set; }
member this.InsertCommand : System.Data.SqlClient.SqlCommand with get, set
[<System.Data.DataSysDescription("DbDataAdapter_InsertCommand")>]
member this.InsertCommand : System.Data.SqlClient.SqlCommand with get, set
Public Property InsertCommand As SqlCommand
Значение свойства
SqlCommand используется в процессе Update(DataSet) для вставки записей, соответствующих новым строкам в DataSet, в базу данных.A SqlCommand used during Update(DataSet) to insert records into the database that correspond to new rows in the DataSet.
- Атрибуты
Примеры
В следующем примере создается SqlDataAdapter и задаются SelectCommand InsertCommand свойства,, UpdateCommand и DeleteCommand .The following example creates a SqlDataAdapter and sets the SelectCommand, InsertCommand, UpdateCommand, and DeleteCommand properties. Предполагается, что объект уже создан SqlConnection .It assumes you have already created a SqlConnection object.
public static SqlDataAdapter CreateCustomerAdapter(
SqlConnection connection)
{
SqlDataAdapter adapter = new SqlDataAdapter();
// Create the SelectCommand.
SqlCommand command = new SqlCommand("SELECT * FROM Customers " +
"WHERE Country = @Country AND City = @City", connection);
// Add the parameters for the SelectCommand.
command.Parameters.Add("@Country", SqlDbType.NVarChar, 15);
command.Parameters.Add("@City", SqlDbType.NVarChar, 15);
adapter.SelectCommand = command;
// Create the InsertCommand.
command = new SqlCommand(
"INSERT INTO Customers (CustomerID, CompanyName) " +
"VALUES (@CustomerID, @CompanyName)", connection);
// Add the parameters for the InsertCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
adapter.InsertCommand = command;
// Create the UpdateCommand.
command = new SqlCommand(
"UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName " +
"WHERE CustomerID = @oldCustomerID", connection);
// Add the parameters for the UpdateCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
SqlParameter parameter = command.Parameters.Add(
"@oldCustomerID", SqlDbType.NChar, 5, "CustomerID");
parameter.SourceVersion = DataRowVersion.Original;
adapter.UpdateCommand = command;
// Create the DeleteCommand.
command = new SqlCommand(
"DELETE FROM Customers WHERE CustomerID = @CustomerID", connection);
// Add the parameters for the DeleteCommand.
parameter = command.Parameters.Add(
"@CustomerID", SqlDbType.NChar, 5, "CustomerID");
parameter.SourceVersion = DataRowVersion.Original;
adapter.DeleteCommand = command;
return adapter;
}
Public Function CreateCustomerAdapter( _
ByVal connection As SqlConnection) As SqlDataAdapter
Dim adapter As SqlDataAdapter = New SqlDataAdapter()
' Create the SelectCommand.
Dim command As SqlCommand = New SqlCommand( _
"SELECT * FROM Customers " & _
"WHERE Country = @Country AND City = @City", connection)
' Add the parameters for the SelectCommand.
command.Parameters.Add("@Country", SqlDbType.NVarChar, 15)
command.Parameters.Add("@City", SqlDbType.NVarChar, 15)
adapter.SelectCommand = command
' Create the InsertCommand.
command = New SqlCommand( _
"INSERT INTO Customers (CustomerID, CompanyName) " & _
"VALUES (@CustomerID, @CompanyName)", connection)
' Add the parameters for the InsertCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID")
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName")
adapter.InsertCommand = command
' Create the UpdateCommand.
command = New SqlCommand( _
"UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName " & _
"WHERE CustomerID = @oldCustomerID", connection)
' Add the parameters for the UpdateCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID")
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName")
Dim parameter As SqlParameter = command.Parameters.Add( _
"@oldCustomerID", SqlDbType.NChar, 5, "CustomerID")
parameter.SourceVersion = DataRowVersion.Original
adapter.UpdateCommand = command
' Create the DeleteCommand.
command = New SqlCommand( _
"DELETE FROM Customers WHERE CustomerID = @CustomerID", connection)
' Add the parameters for the DeleteCommand.
command.Parameters.Add( _
"@CustomerID", SqlDbType.NChar, 5, "CustomerID")
parameter.SourceVersion = DataRowVersion.Original
adapter.DeleteCommand = command
Return adapter
End Function
Комментарии
В случае Update , если это свойство не задано и сведения о первичном ключе имеются в DataSet , то InsertCommand может быть создан автоматически, если задать SelectCommand свойство и использовать SqlCommandBuilder .During Update, if this property is not set and primary key information is present in the DataSet, the InsertCommand can be generated automatically if you set the SelectCommand property and use the SqlCommandBuilder. Затем все дополнительные команды, которые не были заданы, создаются SqlCommandBuilder .Then, any additional commands that you do not set are generated by the SqlCommandBuilder. Эта логика создания требует, чтобы сведения о ключевом столбце присутствовали в DataSet .This generation logic requires key column information to be present in the DataSet. Дополнительные сведения см. в разделе Создание команд с помощью коммандбуилдерс.For more information, see Generating Commands with CommandBuilders.
Когда InsertCommand назначается ранее созданному SqlCommand , объект SqlCommand не клонируется.When InsertCommand is assigned to a previously created SqlCommand, the SqlCommand is not cloned. Объект InsertCommand поддерживает ссылку на ранее созданный SqlCommand объект.The InsertCommand maintains a reference to the previously created SqlCommand object.
Если выполнение этой команды возвращает строки, эти строки можно добавить в в DataSet зависимости от того, как задано свойство упдатедровсаурце SqlCommand объекта.If execution of this command returns rows, these rows can be added to the DataSet depending on how you set the UpdatedRowSource property of the SqlCommand object.
Для каждого столбца, который распространяется на источник данных в Update , параметр должен быть добавлен в InsertCommand
, UpdateCommand
или DeleteCommand
.For every column that you propagate to the data source on Update, a parameter should be added to InsertCommand
, UpdateCommand
, or DeleteCommand
. SourceColumn
Свойству параметра должно быть присвоено имя столбца.The SourceColumn
property of the parameter should be set to the name of the column. Это означает, что значение параметра не задано вручную, но берется из конкретного столбца в обрабатываемой в настоящий момент строке.This indicates that the value of the parameter is not set manually, but is taken from the particular column in the currently processed row.