SqlCommand.ExecuteNonQuery 方法

定義

針對連接執行 Transact-SQL 陳述式,並傳回受影響的資料列數目。

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

傳回

Int32

受影響的資料列數目。

實作

例外狀況

Value 設為 Stream 時,使用 BinaryVarBinary 以外的 SqlDbType。 如需串流的詳細資訊,請參閱 SqlClient 串流支援

-或-

Value 設為 TextReader 時,使用 CharNCharNVarCharVarCharXml 以外的 SqlDbType

-或-

Value 設定為 XmlReader 時,使用 Xml 以外的 SqlDbType

對鎖定的資料列執行命令時發生例外狀況。 當您使用 Microsoft .NET Framework 1.0 版時不會產生這個例外狀況。

-或-

串流作業期間發生逾時。 如需串流的詳細資訊,請參閱 SqlClient 串流支援

StreamXmlReaderTextReader 物件在串流作業期間發生錯誤。 如需串流的詳細資訊,請參閱 SqlClient 串流支援

在串流作業期間已關閉或卸除的 SqlConnection。 如需串流的詳細資訊,請參閱 SqlClient 串流支援

StreamXmlReaderTextReader 物件在串流作業期間已關閉。 如需串流的詳細資訊,請參閱 SqlClient 串流支援

範例

下列範例會建立 , SqlCommand 然後使用 來執行它 ExecuteNonQuery 。 此範例會傳遞字串,該字串是 Transact-SQL 語句 (,例如 UPDATE、INSERT 或 DELETE) ,以及用來連線至資料來源的字串。

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

備註

例如,您可以使用 ExecuteNonQuery 來執行目錄作業 (,查詢資料庫的結構或建立資料庫物件,例如資料表) ,或藉由執行 UPDATE、INSERT 或 DELETE 子句來變更資料庫中 DataSet 的資料。

ExecuteNonQuery雖然 不會傳回任何資料列,但對應至參數的任何輸出參數或傳回值會填入資料。

對 UPDATE、INSERT 和 DELETE 陳述式而言,傳回值是受命令影響的資料列數目。 對其他類型的陳述式而言,傳回值為 -1。

當插入或更新的資料表上有觸發程式時,傳回值會包含受插入或更新作業影響的資料列數目,以及觸發程式或觸發程式所影響的資料列數目。

在連接上設定 SET NOCOUNT ON 時, (之前或做為執行命令的一部分,或是由命令執行所起始的觸發程式之一部分,) 個別語句所影響的資料列停止影響此方法所傳回的資料列計數。

如果未偵測到對計數造成貢獻的語句,則傳回值為 -1。 如果發生復原,傳回值也是 -1。

適用於

另請參閱