Sdílet prostřednictvím


Aktualizace dat ve zdroji dat

Platí pro: .NET Framework .NET Standard

Stáhnout ADO.NET

Příkazy SQL, které upravují data (například INSERT, UPDATE nebo DELETE), nevrací řádky. Podobně mnoho uložených procedur provádí akci, ale nevrací řádky. Pokud chcete spouštět příkazy, které nevrací řádky, vytvořte objekt Command s příslušným příkazem SQL a připojením, včetně požadovaných parametrů. Spusťte příkaz pomocí ExecuteNonQuery metody objektu SqlCommand .

Poznámka:

Metoda ExecuteNonQuery vrátí celé číslo, které představuje počet řádků ovlivněných příkazem nebo uloženou procedurou, která byla provedena. Pokud se provede více příkazů, vrácená hodnota je součet záznamů ovlivněných všemi příkazy spuštěnými.

Example

Následující příklad kódu spustí příkaz INSERT pro vložení záznamu do databáze pomocí ExecuteNonQuery.

// Assumes connection is a valid SqlConnection.
connection.Open();

string queryString = "INSERT INTO Customers " +
"(CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')";

SqlCommand command = new SqlCommand(queryString, connection);
Int32 recordsAffected = command.ExecuteNonQuery();

Následující příklad kódu spustí uloženou proceduru vytvořenou vzorovým kódem při provádění operací katalogu. Uložená procedura nevrací žádné řádky, takže ExecuteNonQuery metoda je použita, ale uložená procedura přijímá vstupní parametr a vrací výstupní parametr a návratovou hodnotu.

// Assumes command is a valid SqlCommand with an open connection.
command.CommandText = "InsertCategory";
command.CommandType = CommandType.StoredProcedure;

SqlParameter parameter = command.Parameters.Add("@RowCount", SqlDbType.Int);
parameter.Direction = ParameterDirection.ReturnValue;

parameter = command.Parameters.Add("@CategoryName", SqlDbType.NChar, 15);

parameter = command.Parameters.Add("@Identity", SqlDbType.Int);
parameter.Direction = ParameterDirection.Output;

command.Parameters["@CategoryName"].Value = "New Category";
command.ExecuteNonQuery();

Int32 categoryID = (Int32) command.Parameters["@Identity"].Value;
Int32 rowCount = (Int32) command.Parameters["@RowCount"].Value;

Viz také