SqlCommand.ExecuteNonQuery Metoda

Definice

Spustí příkaz Jazyka Transact-SQL proti připojení a vrátí počet ovlivněných řádků.

public:
 override int ExecuteNonQuery();
public:
 virtual int ExecuteNonQuery();
public override int ExecuteNonQuery ();
public int ExecuteNonQuery ();
override this.ExecuteNonQuery : unit -> int
abstract member ExecuteNonQuery : unit -> int
override this.ExecuteNonQuery : unit -> int
Public Overrides Function ExecuteNonQuery () As Integer
Public Function ExecuteNonQuery () As Integer

Návraty

Počet ovlivněných řádků

Implementuje

Výjimky

Při SqlDbType nastavení na Streamhodnotu byla použita Value jiná hodnota než Binary nebo VarBinary. Další informace o streamování najdete v tématu Podpora streamování SqlClient.

-nebo-

Při SqlDbType nastavení na TextReaderhodnotu se použila Value jiná hodnota než Char, NChar, NVarChar, VarChar nebo XML.

-nebo-

Při SqlDbType nastavení na XmlReaderhodnotu byla použita Value jiná hodnota než XML.

Při provádění příkazu na uzamčený řádek došlo k výjimce. Tato výjimka se negeneruje, pokud používáte rozhraní Microsoft .NET Framework verze 1.0.

-nebo-

Během operace streamování došlo k vypršení časového limitu. Další informace o streamování najdete v tématu Podpora streamování SqlClient.

Během operace streamování došlo v objektu Streamnebo TextReaderXmlReader k chybě. Další informace o streamování najdete v tématu Podpora streamování SqlClient.

Zavřený SqlConnection nebo vynechaný během operace streamování. Další informace o streamování najdete v tématu Podpora streamování SqlClient.

Objekt Streamnebo XmlReaderTextReader byl uzavřen během operace streamování. Další informace o streamování najdete v tématu Podpora streamování SqlClient.

Příklady

Následující příklad vytvoří a pak ho SqlCommand spustí pomocí ExecuteNonQuery. Příklad je předán řetězec, který je příkazem Jazyka Transact-SQL (například UPDATE, INSERT nebo DELETE) a řetězec, který se má použít pro připojení ke zdroji dat.

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

Poznámky

Můžete použít ExecuteNonQuery k provádění operací katalogu (například dotazování struktury databáze nebo vytváření databázových objektů, jako jsou tabulky), nebo ke změně dat v databázi bez použití DataSet příkazu UPDATE, INSERT nebo DELETE.

Přestože nevrací ExecuteNonQuery žádné řádky, všechny výstupní parametry nebo návratové hodnoty namapované na parametry se naplní daty.

U příkazů UPDATE, INSERT a DELETE je návratovou hodnotou počet řádků ovlivněných příkazem. Pro všechny ostatní typy příkazů je návratová hodnota -1.

Pokud v vložené nebo aktualizované tabulce existuje aktivační událost, návratová hodnota zahrnuje počet řádků ovlivněných operací vložení nebo aktualizace a počet řádků ovlivněných triggerem nebo triggery.

Pokud je na připojení nastavená funkce SET NOCOUNT ON (před spuštěním příkazu nebo jako součást spuštění příkazu nebo jako součást triggeru iniciovaného spuštěním příkazu), řádky ovlivněné jednotlivými příkazy přestanou přispívat k počtu ovlivněných řádků, který je vrácen touto metodou.

Pokud nejsou zjištěny žádné příkazy, které přispívají k počtu, návratová hodnota je -1. Pokud dojde k vrácení zpět, je návratová hodnota také -1.

Platí pro

Viz také