bestsource

ExecuteScalar, ExecuteReader 및 ExecuteNonQuery의 차이점은 무엇입니까?

bestsource 2023. 5. 29. 11:03
반응형

ExecuteScalar, ExecuteReader 및 ExecuteNonQuery의 차이점은 무엇입니까?

이 세 가지를 사용할 때 어떤 경우가 다릅니까?어디서 사용해야 하고 어디서 사용하면 안 되나요?

  • ExecuteScalar일반적으로 쿼리가 단일 값을 반환할 때 사용됩니다.더 많은 값이 반환되면 첫 번째 행의 첫 번째 열이 됩니다.예를 들어 다음과 같습니다.SELECT @@IDENTITY AS 'Identity'.
  • ExecuteReader 행 "/숫자"의 경우)가 있는 모든 됩니다.SELECT col1, col2 from sometable).
  • ExecuteNonQuery는 일반적으로 결과가 없는 SQL 문(예: UPDATE, INSERT 등)에 사용됩니다.

비쿼리 실행():

  1. 작업 쿼리에서만 작동합니다(만들기,변경, 삭제, 삽입, 업데이트, 삭제).
  2. 쿼리에 의해 영향을 받은 행 수를 반환합니다.
  3. 반환 유형은 int입니다.
  4. 반환 값은 선택 사항이며 정수 변수에 할당할 수 있습니다.

ExecuteReader():

  1. 액션 및 비액션 쿼리로 작동합니다(선택).
  2. 쿼리에서 선택한 행의 컬렉션을 반환합니다.
  3. 반환 형식은 DataReader입니다.
  4. 반환 값은 필수 항목이므로 다른 개체 DataReader에 할당해야 합니다.

스칼라 실행():

  1. 집계 함수를 포함하는 비작업 쿼리에서 작동합니다.
  2. 쿼리 결과의 첫 번째 행 및 첫 번째 열 값을 반환합니다.
  3. 반환 형식이 개체입니다.
  4. 반환 값은 필수이며 필요한 유형의 변수에 할당해야 합니다.

참조 URL:

http://nareshkamuni.blogspot.in/2012/05/what-is-difference-between.html

각각 다른 유형의 실행입니다.

  • ExecuteScalar는 단일 값을 반환하는 쿼리 유형이 됩니다.

    예를 들어, 삽입 후 생성된 ID를 반환합니다.

    INSERT INTO my_profile (Address) VALUES ('123 Fake St.'); SELECT CAST(scope_identity() AS int)

  • ExecuteReader는 한 번에 결과의 모든 열을 읽을 수 있는 데이터 판독기를 제공합니다.

    예를 들어 한 명 이상의 사용자에 대한 프로필 정보를 끌어오는 것입니다.

    SELECT * FROM my_profile WHERE id = '123456'

  • ExecuteNonQuery는 값을 반환하지 않는 SQL이지만 실제로는 삭제 또는 수정 작업을 수행하고 있습니다.

    예를 들어 데이터베이스에서 사용자 프로파일을 업데이트할 수 있습니다.

    UPDATE my_profile SET Address = '123 Fake St.' WHERE id = '123456'

문서에서 (참고: MSDN은 작업이 무엇을 하는지 알고 싶을 때 유용한 리소스입니다!):

스칼라 실행

ExecuteScalar 메서드를 사용하여 데이터베이스에서 단일 값(예: 집계 값)을 검색합니다.이 경우 ExecuteReader 메서드를 사용하는 것보다 코드가 적게 필요하며, SqlDataReader에서 반환한 데이터를 사용하여 단일 값을 생성하는 작업을 수행해야 합니다.

리더 실행

명령 전송Connection에 텍스트를 입력하고 SqlDataReader를 빌드합니다.

그리고 SqlDataReader에서...

SQL Server 데이터베이스에서 전진 전용 행 스트림을 읽는 방법을 제공합니다.이 클래스는 상속할 수 없습니다.

비쿼리 실행

ExecuteNonQuery를 사용하여 카탈로그 작업(예: 데이터베이스의 구조를 쿼리하거나 테이블과 같은 데이터베이스 개체를 만드는 경우)을 수행하거나 UPDATE, INSERT 또는 DELETE 문을 실행하여 DataSet을 사용하지 않고 데이터베이스의 데이터를 변경할 수 있습니다.

다른 사용자가 게시한 내용에 추가하기

ExecuteScalar는 개념적으로 쿼리에서 결과 집합의 첫 번째 행에서 가장 왼쪽에 있는 열을 반환합니다. ExecuteScalara SELECT * FROM 직원이 사용할 수 있지만 단일 값을 반환하는 쿼리에 일반적으로 사용되는 결과 행의 첫 번째 셀만 얻을 수 있습니다.SQL Server에 대해 100% 확신할 수는 없지만 Oracle에서는 FUNCTION(단일 값을 반환하는 데이터베이스 코드)을 실행할 때 사용하지 않으며 함수가 단일 값을 반환하더라도 함수의 반환 값을 제공할 것으로 예상합니다.그러나 쿼리의 일부로 기능을 실행하는 경우(예: SELECT Substres('abc', 1, 1) FROM DUAL) 그러면 반환 값이 결과 행 집합의 맨 위 왼쪽 셀에 저장되므로 반환 값이 제공됩니다.

ExecuteNonQuery는 데이터를 수정하거나(INSERT/UPDATE/DELETE) 데이터베이스 구조를 수정하는 데이터베이스 저장 프로시저, 함수 및 쿼리를 실행하는 데 사용됩니다(CREATE TABLE...).일반적으로 호출의 반환 값은 작업에 의해 영향을 받은 행 수를 나타냅니다. 그러나 DB 문서를 확인하여 이를 보장하십시오.

ExecuteReader()쿼리 결과에 대해 정방향으로만 액세스하고 읽기 전용 액세스를 제공하는 데이터 공급자 DBDataReader 개체를 반환하는 SQL 쿼리를 실행합니다.

ExecuteScalar()는 와유다사 니합다니.ExecuteReader()레코드 카운트를 얻는 것과 같은 싱글톤 쿼리를 위해 설계된 방법입니다.

ExecuteNonQuery()create, insert로 합니다.)

비쿼리 실행

이 ExecuteNonQuery 메서드는 삽입, 업데이트 및 삭제, 생성 및 SET 문에만 사용됩니다.ExecuteNonQuery 메서드는 INSERT, DELETE 또는 UPDATE 작업에 영향을 받은 행 수를 반환합니다.

스칼라 실행

데이터베이스에서 단일 값을 검색하는 속도가 매우 빠릅니다.실행 스칼라는 명령 개체를 사용하여 SQL 쿼리 또는 저장 프로시저를 실행할 때 단일 행 단일 열 값, 즉 단일 값을 반환합니다.리더 실행

Execute Reader는 명령 개체를 사용하여 SQL Query 또는 Stored 프로시저를 실행할 때 행 집합을 반환하는 데 사용됩니다.이것은 레코드의 포워드 전용 검색이며 테이블 값을 처음부터 마지막까지 읽는 데 사용됩니다.

ExecuteNonQuery 메서드는 INSERT, DELETE 또는 UPDATE 작업에 영향을 받은 행 수를 반환합니다.이 ExecuteNonQuery 메서드는 삽입, 업데이트 및 삭제, 생성 및 SET 문에만 사용됩니다. (자세히 보기)

ExecuteScalar는 명령 개체를 사용하여 SQL 쿼리 또는 저장 프로시저를 실행할 때 단일 행 단일 열 값, 즉 단일 값을 반환합니다.데이터베이스에서 단일 값을 검색하는 속도가 매우 빠릅니다.(자세히 보기)

ExecuteReader는 명령 개체를 사용하여 SQL Query 또는 Stored 프로시저를 실행할 때 행 집합을 반환하는 데 사용됩니다.이것은 레코드의 전달 전용 검색이며 테이블 값을 처음부터 마지막까지 읽는 데 사용됩니다. (자세한 내용 읽기)

ExecuteNonQuery: 일반적으로 삽입, 업데이트, 삭제 작업과 같은 SQL 문에서 반환되는 항목이 없을 때 사용됩니다.

cmd.ExcecuteNonQuery();

스칼라 실행:

SQL 쿼리가 단일 값을 반환할 때 사용됩니다.

Int b = cmd.ExcecuteScalar();

리더 실행

SQL 쿼리 또는 저장 프로시저가 여러 행/열을 반환할 때 사용됩니다.

SqlDataReader dr = cmd.ExecuteReader();

자세한 정보는 여기를 클릭하십시오. http://www.dotnetqueries.com/Article/148/-difference-between-executescalar-executereader-executenonquery

ExecuteNonQuery - 결과 집합을 반환하지 않으려면 SQL Server에서 임의 SQL 문을 실행하려면 이 작업을 사용합니다.이 작업을 통해 UPDATE, INSERT 또는 DELETE 문을 실행하여 데이터베이스 개체를 만들거나 데이터베이스의 데이터를 변경할 수 있습니다.

ExecuteScalar-ExecuteScalar()는 SQL 문과 저장 프로시저를 실행하고 반환된 결과 집합의 첫 번째 행 첫 번째 열에 스칼라 값을 반환합니다.Count(*) 또는 Sum()과 같은 집계 함수와 함께 사용하면 매우 유용합니다.

ExecuteReader 메서드를 사용하여 SQL 명령을 실행하거나 저장 프로시저가 데이터베이스에서 행 집합을 반환합니다.

언급URL : https://stackoverflow.com/questions/2974154/what-is-the-difference-between-executescalar-executereader-and-executenonquery

반응형