다음을 통해 공유


SqlCommand.ExecuteScalar 메서드

정의

쿼리를 실행하고 쿼리에서 반환한 결과 집합에서 첫 번째 행의 첫 번째 열을 반환합니다. 추가 열이나 행은 무시됩니다.

public:
 override System::Object ^ ExecuteScalar();
public override object ExecuteScalar ();
override this.ExecuteScalar : unit -> obj
Public Overrides Function ExecuteScalar () As Object

반환

결과 집합에 있는 첫 번째 행의 첫 번째 열이거나 결과 집합이 비어 있는 경우 null 참조( Nothing Visual Basic의 경우)입니다. 최대 2,033자를 반환합니다.

예외

SqlDbType 로 설정된 Stream 경우 ValueBinary 또는 VarBinary 이외의 가 사용되었습니다. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.

또는

이 로 SqlDbType 설정 TextReader 되었을 때 ValueChar, NChar, NVarChar, VarChar 또는 Xml 이외의 가 사용되었습니다.

또는

이 로 SqlDbType 설정 XmlReader 되었을 때 ValueXml 이외의 가 사용되었습니다.

잠긴 행에 대해 명령을 실행하는 동안 예외가 발생했습니다. Microsoft .NET Framework 버전 1.0을 사용하는 경우에는 이 예외가 생성되지 않습니다.

또는

스트리밍 작업 동안 시간이 초과되었습니다. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.

스트리밍 작업 동안 SqlConnection이 닫히거나 삭제되었습니다. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.

스트리밍 작업 중에 또는 XmlReaderTextReader 개체에서 Stream 오류가 발생했습니다. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.

Stream 또는 XmlReaderTextReader 개체가 스트리밍 작업 중에 닫혔습니다. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.

예제

다음 예제에서는 를 만든 SqlCommand 다음 를 사용하여 ExecuteScalar실행합니다. 이 예제에서는 테이블에 삽입할 새 값을 나타내는 문자열과 데이터 원본에 연결하는 데 사용할 문자열을 전달합니다. 함수는 새 행이 삽입된 경우 새 ID 열 값을 반환하고 실패하면 0을 반환합니다.

using System;
using System.Data;
using Microsoft.Data.SqlClient;

public class Sample
{

    public void CreateSqlCommand(
        string queryString, SqlConnection connection)
    {
        SqlCommand command = new
            SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteScalar();
        connection.Close();
    }

설명

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

일반적인 ExecuteScalar 쿼리는 다음 C# 예제와 같이 형식을 지정할 수 있습니다.

cmd.CommandText = "SELECT COUNT(*) FROM dbo.region";
Int32 count = (Int32) cmd.ExecuteScalar();

적용 대상