다음을 통해 공유


데이터 원본에서 데이터 업데이트

데이터를 수정하는 SQL 문(예: INSERT, UPDATE 또는 DELETE)은 행을 반환하지 않습니다. 마찬가지로 많은 저장 프로시저가 작업을 수행하지만 행을 반환하지는 않습니다. 행을 반환하지 않는 명령을 실행하려면 필요한 매개 변수를 포함하여 적절한 SQL 명령 및 연결을 사용하여 Command 개체를 만듭니다. Command 개체의 ExecuteNonQuery 메서드를 사용하여 명령을 실행합니다.

ExecuteNonQuery 메서드는 실행된 문 또는 저장 프로시저의 영향을 받는 행 수를 나타내는 정수를 반환합니다. 여러 문이 실행되는 경우 반환되는 값은 실행된 모든 문의 영향을 받는 레코드의 합계입니다.

예시

다음 코드 예제에서는 INSERT 문을 실행하여 ExecuteNonQuery를 사용하여 데이터베이스에 레코드를 삽입합니다.

' 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;  

참고하십시오