SqlDataAdapter.InsertCommand Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví Transact-SQL příkaz nebo uložená procedura pro vložení nových záznamů do zdroje dat.
public:
property Microsoft::Data::SqlClient::SqlCommand ^ InsertCommand { Microsoft::Data::SqlClient::SqlCommand ^ get(); void set(Microsoft::Data::SqlClient::SqlCommand ^ value); };
public Microsoft.Data.SqlClient.SqlCommand InsertCommand { get; set; }
member this.InsertCommand : Microsoft.Data.SqlClient.SqlCommand with get, set
Public Property InsertCommand As SqlCommand
Hodnota vlastnosti
Slouží SqlCommand k Update(DataSet) vložení záznamů do databáze, které odpovídají novým řádkům v objektu DataSet.
Příklady
Následující příklad vytvoří SqlDataAdapter a nastaví SelectCommandvlastnosti , InsertCommand, UpdateCommanda DeleteCommand . Předpokládá se, že jste už vytvořili SqlConnection objekt.
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
}
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;
}
}
Poznámky
Pokud Updateběhem příkazu není tato vlastnost nastavená a informace o primárním klíči InsertCommand jsou obsaženy v objektu DataSet, může být objekt automaticky vygenerován, pokud nastavíte SelectCommand vlastnost a použijete SqlCommandBuilder. Všechny další příkazy, které nenastavíte, pak vygeneruje SqlCommandBuilder. Tato logika generování vyžaduje, aby informace o klíčovém sloupci byly v DataSet. Další informace naleznete v tématu Generování příkazů pomocí CommandBuilders.
Při InsertCommand přiřazení k dříve vytvořenému SqlCommandobjektu SqlCommand se objekt neklonuje. Objekt InsertCommand udržuje odkaz na dříve vytvořený SqlCommand objekt.
Pokud spuštění tohoto příkazu vrátí řádky, mohou být tyto řádky přidány do objektu DataSet v závislosti na tom, jak nastavíte vlastnost UpdatedRowSource objektu SqlCommand .
Pro každý sloupec, který rozšíříte do zdroje dat v Update, by měl být parametr přidán do InsertCommand
, UpdateCommand
nebo DeleteCommand
. Vlastnost SourceColumn
parametru by měla být nastavená na název sloupce. To znamená, že hodnota parametru není nastavena ručně, ale je převzata z konkrétního sloupce v aktuálně zpracovaném řádku.