SqlCommand.ExecuteNonQuery 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
對連線執行 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時,會使用除 Binary 或 VarBinary 以外的 。ValueStream 欲了解更多串流資訊,請參閱 SqlClient 串流支援。
-或-
SqlDbType除了 Char、NChar、NVarChar、VarChar 或 Xml,當 設定為 時,會使用其他 Char、Value、NVarChar、TextReader 或 Xml。
-或-
在執行指令時發生了例外,該指令在鎖定列時發生。 當你使用 Microsoft .NET Framework 1.0 版本時,此例外不會產生。
-或-
串流操作中發生了一次超時。 欲了解更多串流資訊,請參閱 SqlClient 串流支援。
在串流操作中,物件或 發生StreamXmlReaderTextReader錯誤。 欲了解更多串流資訊,請參閱 SqlClient 串流支援。
在 SqlConnection 串流操作中關閉或掉落。 欲了解更多串流資訊,請參閱 SqlClient 串流支援。
Stream該 , XmlReader 或TextReader物件在串流操作中被關閉。 欲了解更多串流資訊,請參閱 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。