SqlCommand.ExecuteNonQuery Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Kör en Transact-SQL-instruktion mot anslutningen och returnerar antalet rader som påverkas.
public:
virtual int ExecuteNonQuery();
public:
override int ExecuteNonQuery();
public int ExecuteNonQuery();
public override int ExecuteNonQuery();
abstract member ExecuteNonQuery : unit -> int
override this.ExecuteNonQuery : unit -> int
override this.ExecuteNonQuery : unit -> int
Public Function ExecuteNonQuery () As Integer
Public Overrides Function ExecuteNonQuery () As Integer
Returer
Antalet rader som påverkas.
Implementeringar
Undantag
En SqlDbType annan än Binär eller VarBinary användes när Value var inställd på Stream. Mer information om strömning finns i SqlClient Streaming Support.
-eller-
En SqlDbType annan än Char, NChar, NVarChar, VarChar eller Xml användes när Value var inställd på TextReader.
-eller-
Ett SqlDbType annat än XML användes när Value var inställt på XmlReader.
Ett undantag inträffade när kommandot kördes mot en låst rad. Det här undantaget genereras inte när du använder Microsoft .NET Framework version 1.0.
-eller-
En timeout inträffade under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.
Ett fel uppstod i ett Stream- XmlReader eller TextReader -objekt under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.
Den SqlConnection stängda eller borttagna under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.
Objektet Stream, XmlReader eller TextReader stängdes under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.
Exempel
I följande exempel skapas en SqlCommand och sedan körs den med hjälp av ExecuteNonQuery. Exemplet skickas en sträng som är en Transact-SQL -instruktion (till exempel UPDATE, INSERT eller DELETE) och en sträng som ska användas för att ansluta till datakällan.
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
command.Connection.Open();
command.ExecuteNonQuery();
}
}
Public Sub CreateCommand(ByVal queryString As String, _
ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)
command.Connection.Open()
command.ExecuteNonQuery()
End Using
End Sub
Kommentarer
Du kan använda ExecuteNonQuery för att utföra katalogåtgärder (till exempel köra frågor mot strukturen för en databas eller skapa databasobjekt som tabeller) eller ändra data i en databas utan att använda en DataSet genom att köra UPDATE-, INSERT- eller DELETE-instruktioner.
ExecuteNonQuery Även om returnerar inga rader fylls alla utdataparametrar eller returvärden som mappas till parametrar med data.
För UPDATE-, INSERT- och DELETE-instruktioner är returvärdet antalet rader som påverkas av kommandot. För alla andra typer av instruktioner är returvärdet -1.
När det finns en utlösare i en tabell som infogas eller uppdateras innehåller returvärdet antalet rader som påverkas av både infognings- eller uppdateringsåtgärden och antalet rader som påverkas av utlösaren eller utlösarna.
När SET NOCOUNT ON har angetts för anslutningen (före eller som en del av körningen av kommandot eller som en del av en utlösare som initierats av körningen av kommandot) slutar de rader som påverkas av enskilda instruktioner att bidra till antalet rader som påverkas av den här metoden.
Om inga instruktioner identifieras som bidrar till antalet är returvärdet -1. Om en återställning inträffar är returvärdet också -1.