Udostępnij za pośrednictwem


SqlCommand.ExecuteNonQuery Metoda

Definicja

Wykonuje instrukcję Języka Transact-SQL względem połączenia i zwraca liczbę wierszy, których dotyczy problem.

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

Zwraca

Liczba wierszy, których dotyczy problem.

Wyjątki

Użyto SqlDbType wartości innej niż Binary lub VarBinary , gdy Value ustawiono wartość Stream . Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.

-lub-

Użyto SqlDbType wartości innej niż Char, NChar, NVarChar, VarChar lub Xml , gdy Value ustawiono wartość TextReader .

-lub-

Element SqlDbType inny niż Xml był używany, gdy Value został ustawiony na XmlReader wartość .

Wystąpił wyjątek podczas wykonywania polecenia względem zablokowanego wiersza. Ten wyjątek nie jest generowany podczas korzystania z usługi Microsoft .NET Framework w wersji 1.0.

-lub-

Podczas operacji przesyłania strumieniowego wystąpiło przekroczenie limitu czasu. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.

Wystąpił błąd w StreamXmlReader obiekcie lub TextReader podczas operacji przesyłania strumieniowego. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.

Zamknięty SqlConnection lub porzucony podczas operacji przesyłania strumieniowego. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.

XmlReader Obiekt Stream lub TextReader został zamknięty podczas operacji przesyłania strumieniowego. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.

Przykłady

Poniższy przykład tworzy obiekt , SqlCommand a następnie wykonuje go przy użyciu polecenia ExecuteNonQuery. Przykład jest przekazywany ciąg, który jest instrukcją Języka Transact-SQL (taką jak UPDATE, INSERT lub DELETE) i ciągiem używanym do nawiązywania połączenia ze źródłem danych.

// <Snippet1>
using System;
using System.Data;
using Microsoft.Data.SqlClient;

namespace SqlCommandCS
{
    class Program
    {
        static void Main()
        {
            string str = "Data Source=(local);Initial Catalog=Northwind;"
                + "Integrated Security=SSPI";
            string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
            CreateCommand(qs, str);
        }
        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();
            }
        }
    }
}
// </Snippet1>

Uwagi

Możesz użyć ExecuteNonQuery polecenia , aby wykonać operacje katalogu (na przykład wykonywanie zapytań dotyczących struktury bazy danych lub tworzenie obiektów bazy danych, takich jak tabele), lub zmianę danych w bazie danych bez użycia przez DataSet wykonanie instrukcji UPDATE, INSERT lub DELETE.

ExecuteNonQuery Mimo że funkcja nie zwraca żadnych wierszy, parametry wyjściowe lub zwracane wartości zamapowane na parametry są wypełniane danymi.

W przypadku instrukcji UPDATE, INSERT i DELETE zwracana wartość to liczba wierszy, których dotyczy polecenie. W przypadku wszystkich innych typów instrukcji zwracana wartość to -1. Gdy wyzwalacz istnieje w tabeli wstawionej lub zaktualizowanej, wartość zwracana zawiera liczbę wierszy, których dotyczy operacja wstawiania lub aktualizacji, oraz liczba wierszy, których dotyczy wyzwalacz lub wyzwalacz. Po ustawieniu polecenia SET NOCOUNT ON na połączeniu (przed lub w ramach wykonywania polecenia lub w ramach wyzwalacza zainicjowanego przez wykonanie polecenia) wiersze, na które wpływają poszczególne instrukcje, przestają przyczyniać się do liczby wierszy, których dotyczy ta metoda. Jeśli nie zostaną wykryte żadne instrukcje, które przyczyniają się do liczby, zwracana wartość to -1. Jeśli nastąpi wycofanie, zwracana wartość to również -1.

Dotyczy