共用方式為


更新資料來源中的資料 (ADO.NET)

會修改資料的 SQL 陳述式 (例如 INSERT、UPDATE 或 DELETE) 不會傳回資料列。 同樣地,許多預存程序會執行動作但不傳回資料列。 若要執行不傳回資料列的命令,請使用適當的 SQL 命令和 Connection (包含任何所需的參數) 來建立 Command 物件。 使用 Command 物件的 ExecuteNonQuery 方法執行命令。

ExecuteNonQuery 方法會傳回整數,表示受到執行的陳述式或預存程序影響的資料列數。 如果執行多個陳述式,傳回的值就是受到所有執行的陳述式影響的記錄數總和。

範例

下列程式碼範例使用 ExecuteNonQuery 來執行 INSERT 陳述式,將記錄插入資料庫。

' Assumes connection is a valid SqlConnection.
connection.Open()

Dim queryString As String = "INSERT INTO Customers " & _
  "(CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')"

Dim command As SqlCommand = New SqlCommand(queryString, connection)
Dim recordsAffected As Int32 = command.ExecuteNonQuery()
// Assumes connection is a valid SqlConnection.
connection.Open();

string queryString = "INSERT INTO Customers " +
  "(CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')";

SqlCommand command = new SqlCommand(queryString, connection);
Int32 recordsAffected = command.ExecuteNonQuery();

下列程式碼範例執行由執行資料庫目錄作業中的程式碼範例所建立的預存程序。 預存程序不會傳回任何資料列,所以要使用 ExecuteNonQuery 方法,但是預存程序確實會收到輸入參數,並且傳回輸出參數和傳回值。

若為 OleDbCommand 物件,必須先將 ReturnValue 參數加入 Parameters 集合。

' Assumes connection is a valid SqlConnection.
Dim command As SqlCommand = _
   New SqlCommand("InsertCategory" , connection)
command.CommandType = CommandType.StoredProcedure

Dim parameter As SqlParameter = _
 command.Parameters.Add("@RowCount", SqlDbType.Int)
parameter.Direction = ParameterDirection.ReturnValue

parameter = command.Parameters.Add( _
  "@CategoryName", SqlDbType.NChar, 15)

parameter = command.Parameters.Add("@Identity", SqlDbType.Int)
parameter.Direction = ParameterDirection.Output

command.Parameters("@CategoryName").Value = "New Category"
command.ExecuteNonQuery()

Dim categoryID As Int32 = CInt(command.Parameters("@Identity").Value)
Dim rowCount As Int32 = CInt(command.Parameters("@RowCount").Value) 
// Assumes connection is a valid SqlConnection.
SqlCommand command = new SqlCommand("InsertCategory" , connection);
command.CommandType = CommandType.StoredProcedure;

SqlParameter parameter = command.Parameters.Add(
  "@RowCount", SqlDbType.Int);
parameter.Direction = ParameterDirection.ReturnValue;

parameter = command.Parameters.Add(
  "@CategoryName", SqlDbType.NChar, 15);

parameter = command.Parameters.Add("@Identity", SqlDbType.Int);
parameter.Direction = ParameterDirection.Output;

command.Parameters["@CategoryName"].Value = "New Category";
command.ExecuteNonQuery();

Int32 categoryID = (Int32) command.Parameters["@Identity"].Value;
Int32 rowCount = (Int32) command.Parameters["@RowCount"].Value;

請參閱

概念

以 DataAdapter 更新資料來源 (ADO.NET)

其他資源

使用命令來修改資料 (ADO.NET)

命令和參數 (ADO.NET)