Dela via


Uppdatera data i en datakälla

Gäller för: .NET Framework .NET .NET Standard

Ladda ned ADO.NET

SQL-instruktioner som ändrar data (till exempel INSERT, UPDATE eller DELETE) returnerar inte rader. På samma sätt utför många lagrade procedurer en åtgärd men returnerar inte rader. Om du vill köra kommandon som inte returnerar rader skapar du ett kommandoobjekt med lämpligt SQL-kommando och en anslutning, inklusive eventuella obligatoriska parametrar. Kör kommandot med ExecuteNonQuery -metoden för SqlCommand objektet.

Anmärkning

Metoden ExecuteNonQuery returnerar ett heltal som representerar antalet rader som påverkas av instruktionen eller den lagrade procedur som kördes. Om flera instruktioner körs är värdet som returneras summan av de poster som påverkas av alla körda instruktioner.

Example

I följande kodexempel körs en INSERT-instruktion för att infoga en post i en databas med 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();

I följande kodexempel körs den lagrade procedur som skapats av exempelkoden i Utföra katalogåtgärder. Inga rader returneras av den lagrade proceduren, så metoden ExecuteNonQuery används, men den lagrade proceduren tar emot en indataparameter och returnerar en utdataparameter och ett returvärde.

// 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;

Se även