Aktualizace dat ve zdroji dat
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í ion, včetně požadovaných parametrů. Spusťte příkaz pomocí ExecuteNonQuery metoda Command objektu.
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.
Příklad
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()
Dim queryString As String = "INSERT INTO Customers " & _
"(CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')"
Dim command As SqlCommand = New SqlCommand(queryString, connection)
Dim recordsAffected As Int32 = command.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ý kód 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.
OleDbCommand Pro objekt, ReturnValue parametr musí být přidán do kolekce Parameters nejprve.
' Assumes connection is a valid SqlConnection.
Dim command As SqlCommand = _
New SqlCommand("InsertCategory" , connection)
command.CommandType = CommandType.StoredProcedure
Dim parameter As SqlParameter = _
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()
Dim categoryID As Int32 = CInt(command.Parameters("@Identity").Value)
Dim rowCount As Int32 = CInt(command.Parameters("@RowCount").Value)
// Assumes connection is a valid SqlConnection.
SqlCommand command = new SqlCommand("InsertCategory" , connection);
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;