쿼리 클래스

데이터베이스 쿼리를 나타냅니다.

상속 계층 구조

System.Object
Microsoft.Web.Management.DatabaseManager.Query

네임스페이스: Microsoft.Web.Management.DatabaseManager
어셈블리: Microsoft.Web.Management.DatabaseManager(Microsoft.Web.Management.DatabaseManager.dll)

구문

'Declaration
Public Class Query
'Usage
Dim instance As Query
public class Query
public ref class Query
public class Query

쿼리 형식은 다음 멤버를 노출합니다.

생성자

메서드 형식 속성 설명
Public 메서드 쿼리 Query 클래스의 새 인스턴스를 만듭니다.

속성

속성 유형 속성 설명
공용 속성 AllowEdit 쿼리 편집이 허용되는지 여부를 지정하는 값을 가져오거나 설정합니다.
공용 속성 문구 쿼리에 대한 SQL 문을 가져오거나 설정합니다.
공용 속성 Tag Query 클래스에 저장된 제네릭 개체를 반환합니다.

메서드

메서드 형식 속성 설명
Public 메서드 같음 (다음에서 상속됨) Object.)
Protected 메서드 Finalize (다음에서 상속됨) Object.)
Public 메서드 GetHashCode (다음에서 상속됨) Object.)
Public 메서드 GetType (다음에서 상속됨) Object.)
Protected 메서드 MemberwiseClone (다음에서 상속됨) Object.)
Public 메서드 ToString (다음에서 상속됨) Object.)

설명

Query 클래스는 데이터베이스 작업을 위한 개체로 쿼리를 나타냅니다. 가장 기본적인 구현에서 쿼리는 Statement 속성에 포함된 SQL 문으로 구성됩니다.

예제

다음 코드 샘플에서는 데이터베이스 쿼리에서 쿼리 결과의 배열을 반환하는 예제 ExecuteQuery 메서드를 보여 줍니다.


    Public Overrides Function ExecuteQuery( _
            ByVal connectionString As String, _
            ByVal query As Microsoft.Web.Management.DatabaseManager.Query) _
            As Microsoft.Web.Management.DatabaseManager.QueryResult()

        Dim results As List(Of QueryResult) = New List(Of QueryResult)
        Dim result As QueryResult = New QueryResult
        Try
            ' Create a new OLEDB connection using the connection string.
            Dim connection As OleDbConnection = New OleDbConnection(connectionString)
            Dim command As OleDbCommand = New OleDbCommand(query.Statement, connection)
            ' Open the database connection.
            connection.Open()
            ' Execute the query and access the data.
            Dim reader As OleDbDataReader = command.ExecuteReader
            ' Add the results to the query list.
            results.Add(GetQueryResult(reader))
            ' Close the database connection.
            reader.Close()
            ' Return the query results.
            Return results.ToArray
        Catch ex As Exception
            Throw New ProviderException(ex.Message)
        End Try

    End Function



...



    Private Function GetQueryResult(ByVal reader As OleDbDataReader) As QueryResult
        Dim result As QueryResult = New QueryResult
        Dim fieldCount As Integer = reader.FieldCount
        Dim i As Integer = 0
        Do While (i < fieldCount)
            Dim metadata As QueryColumnMetadata = New QueryColumnMetadata
            metadata.Name = reader.GetName(i)
            result.ColumnMetadata.Add(metadata)
            i = (i + 1)
        Loop

        While reader.Read
            Dim itemData() As Object = New Object((fieldCount) - 1) {}
            i = 0
            Do While (i < fieldCount)
                itemData(i) = ConvertToSerializable(reader(i))
                i = (i + 1)
            Loop
            result.QueryResults.Add(itemData)

        End While
        Return result
    End Function


        public override QueryResult[] ExecuteQuery(
            string connectionString,
            Query query )
        {
            List<QueryResult> results = new List<QueryResult>();
            QueryResult result = new QueryResult();
            try
            {
                // Create a new OLEDB connection using the connection string.
                using (OleDbConnection connection = new OleDbConnection(connectionString))
                {
                    OleDbCommand command = new OleDbCommand(query.Statement, connection);
                    // Open the database connection.
                    connection.Open();
                    // Execute the query and access the data.
                    OleDbDataReader reader = command.ExecuteReader();
                    // Add the results to the query list.
                    results.Add(GetQueryResult(reader));
                    // Close the database connection.
                    reader.Close();
                }
                // Return the query results.
                return results.ToArray();
            }
            catch(Exception ex)
            {
                throw new ProviderException(ex.Message);
            }
        }



...



        private QueryResult GetQueryResult(OleDbDataReader reader)
        {
            QueryResult result = new QueryResult();
            int fieldCount = reader.FieldCount;

            for (int i = 0; i < fieldCount; i++)
            {
                QueryColumnMetadata metadata = new QueryColumnMetadata();
                metadata.Name = reader.GetName(i);
                result.ColumnMetadata.Add(metadata);
            }

            while (reader.Read())
            {
                object[] itemData = new object[fieldCount];
                for (int i = 0; i < fieldCount; i++)
                {
                    itemData[i] = ConvertToSerializable(reader[i]);
                }
                result.QueryResults.Add(itemData);
            }
            return result;
        }

스레드 보안

이 형식의 모든 공용 정적 멤버(Visual Basic의 경우 공유 멤버)는 스레드로부터 안전하게 보호됩니다. 인스턴스 구성원은 스레드로부터의 안전성이 보장되지 않습니다.

참고 항목

참조

Microsoft.Web.Management.DatabaseManager 네임스페이스