SqlCommand.ExecuteNonQuery 方法

定義

對連線執行 Transact-SQL 陳述式,並回傳受影響的列數。

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

傳回

受影響的行數。

實作

例外狀況

當 設定為 SqlDbType時,會使用除 BinaryVarBinary 以外的 。ValueStream 欲了解更多串流資訊,請參閱 SqlClient 串流支援

-或-

SqlDbType除了 Char、NChar、NVarChar、VarCharXml,當 設定為 時,會使用其他 CharValue、NVarChar、TextReader 或 Xml。

-或-

當 設定為 SqlDbType時,會使用 Xml 以外的 。ValueXmlReader

在執行指令時發生了例外,該指令在鎖定列時發生。 當你使用 Microsoft .NET Framework 1.0 版本時,此例外不會產生。

-或-

串流操作中發生了一次超時。 欲了解更多串流資訊,請參閱 SqlClient 串流支援

在串流操作中,物件或 發生StreamXmlReaderTextReader錯誤。 欲了解更多串流資訊,請參閱 SqlClient 串流支援

SqlConnection 串流操作中關閉或掉落。 欲了解更多串流資訊,請參閱 SqlClient 串流支援

Stream該 , XmlReaderTextReader物件在串流操作中被關閉。 欲了解更多串流資訊,請參閱 SqlClient 串流支援

範例

以下範例建立 a 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。

適用於

另請參閱