SqlCommand.ExecuteNonQuery 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
針對連接執行 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
傳回
受影響的資料列數目。
實作
例外狀況
當 Value 設為 Stream 時,使用 Binary 或 VarBinary 以外的 SqlDbType。 如需串流的詳細資訊,請參閱 SqlClient 串流支援。
-或-
SqlDbType當 設定TextReader為 時Value,會使用 Char、NChar、NVarChar、VarChar 或 Xml 以外的 。
-或-
對鎖定的資料列執行命令時發生例外狀況。 當您使用 Microsoft .NET Framework 1.0 版時不會產生這個例外狀況。
-或-
串流作業期間發生逾時。 如需串流的詳細資訊,請參閱 SqlClient 串流支援。
Stream、XmlReader 或 TextReader 物件在串流作業期間發生錯誤。 如需串流的詳細資訊,請參閱 SqlClient 串流支援。
在串流作業期間已關閉或卸除的 SqlConnection。 如需串流的詳細資訊,請參閱 SqlClient 串流支援。
Stream、XmlReader 或 TextReader 物件在串流作業期間已關閉。 如需串流的詳細資訊,請參閱 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。
適用於
另請參閱
- 在 ADO.NET 中傳送和修改資料
- SQL Server and ADO.NET (SQL Server 和 ADO.NET)
- ADO.NET 概觀 \(部分機器翻譯\)