ExecuteScalar, ExecuteReader 및 ExecuteNonQuery의 차이점은 무엇입니까?
이 세 가지를 사용할 때 어떤 경우가 다릅니까?어디서 사용해야 하고 어디서 사용하면 안 되나요?
ExecuteScalar
일반적으로 쿼리가 단일 값을 반환할 때 사용됩니다.더 많은 값이 반환되면 첫 번째 행의 첫 번째 열이 됩니다.예를 들어 다음과 같습니다.SELECT @@IDENTITY AS 'Identity'
.ExecuteReader
행 "/숫자"의 경우)가 있는 모든 됩니다.SELECT col1, col2 from sometable
).ExecuteNonQuery
는 일반적으로 결과가 없는 SQL 문(예: UPDATE, INSERT 등)에 사용됩니다.
비쿼리 실행():
- 작업 쿼리에서만 작동합니다(만들기,변경, 삭제, 삽입, 업데이트, 삭제).
- 쿼리에 의해 영향을 받은 행 수를 반환합니다.
- 반환 유형은 int입니다.
- 반환 값은 선택 사항이며 정수 변수에 할당할 수 있습니다.
ExecuteReader():
- 액션 및 비액션 쿼리로 작동합니다(선택).
- 쿼리에서 선택한 행의 컬렉션을 반환합니다.
- 반환 형식은 DataReader입니다.
- 반환 값은 필수 항목이므로 다른 개체 DataReader에 할당해야 합니다.
스칼라 실행():
- 집계 함수를 포함하는 비작업 쿼리에서 작동합니다.
- 쿼리 결과의 첫 번째 행 및 첫 번째 열 값을 반환합니다.
- 반환 형식이 개체입니다.
- 반환 값은 필수이며 필요한 유형의 변수에 할당해야 합니다.
참조 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
'bestsource' 카테고리의 다른 글
수학은 어때요?.NET Framework에 구현된 Pow()? (0) | 2023.05.29 |
---|---|
Angular - 구성 요소에서 module.id 의 의미는 무엇입니까? (0) | 2023.05.29 |
Visual Studio 컴파일 오류인 "프로세서 아키텍처 간 불일치"를 해결하려면 어떻게 해야 합니까? (0) | 2023.05.29 |
Bash 스크립트 누락 ']' (0) | 2023.05.29 |
구조 시스템을 변환하려면 어떻게 해야 합니까?시스템에 대한 바이트 바이트 []입니다.IO.C#의 스트림 개체? (0) | 2023.05.29 |