次の方法で共有


クエリ クラス

データベース クエリを表します。

継承階層

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 メソッド Equals (オブジェクトから継承されます。
Protected メソッド Finalize (オブジェクトから継承されます。
Public メソッド GetHashCode する (オブジェクトから継承されます。
Public メソッド GetType する (オブジェクトから継承されます。
Protected メソッド MemberwiseClone (オブジェクトから継承されます。
Public メソッド に ToString を適用する (オブジェクトから継承されます。

注釈

Query クラスは、データベースを操作するためのオブジェクトとしてクエリを表します。 最も基本的な実装では、クエリは、ステートメント プロパティに含まれる 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 名前空間の