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 串流支援。
-或-
當 Value 設為 TextReader 時,使用 Char、NChar、NVarChar、VarChar 或 Xml 以外的 SqlDbType。
-或-
對鎖定的資料列執行命令時發生例外狀況。 當您使用 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。