SqlCeCommandBuilder クラス

DataSet への変更を関連データベースに反映させるための単一テーブル コマンドを自動的に生成する手段を提供します。このクラスは継承できません。

継承階層

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Data.Common.DbCommandBuilder
        System.Data.SqlServerCe.SqlCeCommandBuilder

名前空間:  System.Data.SqlServerCe
アセンブリ:  System.Data.SqlServerCe (System.Data.SqlServerCe.dll)

構文

'宣言
Public NotInheritable Class SqlCeCommandBuilder _
    Inherits DbCommandBuilder
'使用
Dim instance As SqlCeCommandBuilder
public sealed class SqlCeCommandBuilder : DbCommandBuilder
public ref class SqlCeCommandBuilder sealed : public DbCommandBuilder
[<SealedAttribute>]
type SqlCeCommandBuilder =  
    class
        inherit DbCommandBuilder
    end
public final class SqlCeCommandBuilder extends DbCommandBuilder

SqlCeCommandBuilder 型は、以下のメンバーを公開しています。

コンストラクター

  名前 説明
パブリック メソッド SqlCeCommandBuilder() SqlCeCommandBuilder クラスの新しいインスタンスを初期化します。
パブリック メソッド SqlCeCommandBuilder(SqlCeDataAdapter) 関連付けられた SqlCeDataAdapter オブジェクトと SqlCeCommand オブジェクトを使用して、SqlCeCommandBuilder クラスの新しいインスタンスを初期化します。

Top

プロパティ

  名前 説明
プロテクト プロパティ CanRaiseEvents (Component から継承されます。)
パブリック プロパティ CatalogLocation SQL Server Compact ではサポートされていません。 (DbCommandBuilder.CatalogLocation をオーバーライドします。)
パブリック プロパティ CatalogSeparator SQL Server Compact ではサポートされていません。 (DbCommandBuilder.CatalogSeparator をオーバーライドします。)
パブリック プロパティ ConflictOption SqlCeCommandBuilder で使用する ConflictOption を指定します。 (DbCommandBuilder.ConflictOption をオーバーライドします。)
パブリック プロパティ Container (Component から継承されます。)
パブリック プロパティ DataAdapter SQL ステートメントを自動生成する対象の SqlCeDataAdapter オブジェクトを取得または設定します。
プロテクト プロパティ DesignMode (Component から継承されます。)
プロテクト プロパティ Events (Component から継承されます。)
パブリック プロパティ QuotePrefix 名前に空白や予約済みトークンなどの文字を含む SQL Server データベース オブジェクト (テーブル、列など) を指定するための開始文字を取得または設定します。 (DbCommandBuilder.QuotePrefix をオーバーライドします。)
パブリック プロパティ QuoteSuffix 名前に空白や予約済みトークンなどの文字を含む SQL Server データベース オブジェクト (テーブル、列など) を指定するための終了文字を取得または設定します。 (DbCommandBuilder.QuoteSuffix をオーバーライドします。)
パブリック プロパティ SchemaSeparator SQL Server Compact ではサポートされていません。 (DbCommandBuilder.SchemaSeparator をオーバーライドします。)
パブリック プロパティ SetAllValues (DbCommandBuilder から継承されます。)
パブリック プロパティ Site (Component から継承されます。)

Top

メソッド

  名前 説明
プロテクト メソッド ApplyParameterInfo (DbCommandBuilder から継承されます。)
パブリック メソッド CreateObjRef (MarshalByRefObject から継承されます。)
パブリック メソッド Dispose() (Component から継承されます。)
プロテクト メソッド Dispose(Boolean) (DbCommandBuilder から継承されます。)
パブリック メソッド Equals (Object から継承されます。)
プロテクト メソッド Finalize (Component から継承されます。)
パブリック メソッド GetDeleteCommand() アプリケーションが SqlCeDataAdapter に対して Update を呼び出したときにデータベースで削除処理を実行するための、自動生成された SqlCeCommand オブジェクトを取得します。
パブリック メソッド GetDeleteCommand(Boolean) (DbCommandBuilder から継承されます。)
パブリック メソッド GetHashCode (Object から継承されます。)
パブリック メソッド GetInsertCommand() アプリケーションが SqlCeDataAdapter に対して Update を呼び出したときにデータベースで挿入処理を実行するための、自動生成された SqlCeCommand オブジェクトを取得します。
パブリック メソッド GetInsertCommand(Boolean) (DbCommandBuilder から継承されます。)
パブリック メソッド GetLifetimeService (MarshalByRefObject から継承されます。)
プロテクト メソッド GetParameterName(Int32) (DbCommandBuilder から継承されます。)
プロテクト メソッド GetParameterName(String) (DbCommandBuilder から継承されます。)
プロテクト メソッド GetParameterPlaceholder (DbCommandBuilder から継承されます。)
プロテクト メソッド GetSchemaTable (DbCommandBuilder から継承されます。)
プロテクト メソッド GetService (Component から継承されます。)
パブリック メソッド GetType (Object から継承されます。)
パブリック メソッド GetUpdateCommand() アプリケーションが SqlCeDataAdapter に対して Update を呼び出したときにデータベースで更新処理を実行するための、自動生成された SqlCeCommand オブジェクトを取得します。
パブリック メソッド GetUpdateCommand(Boolean) (DbCommandBuilder から継承されます。)
プロテクト メソッド InitializeCommand (DbCommandBuilder から継承されます。)
パブリック メソッド InitializeLifetimeService (MarshalByRefObject から継承されます。)
プロテクト メソッド MemberwiseClone() (Object から継承されます。)
プロテクト メソッド MemberwiseClone(Boolean) (MarshalByRefObject から継承されます。)
パブリック メソッド QuoteIdentifier 指定した識別子の引用符で囲まれた正しい形式を返します。 (DbCommandBuilder.QuoteIdentifier(String) をオーバーライドします。)
パブリック メソッド RefreshSchema (DbCommandBuilder から継承されます。)
プロテクト メソッド RowUpdatingHandler (DbCommandBuilder から継承されます。)
プロテクト メソッド SetRowUpdatingHandler (DbCommandBuilder から継承されます。)
パブリック メソッド ToString (Component から継承されます。)
パブリック メソッド UnquoteIdentifier 指定した識別子の引用符で囲まれていない正しい形式を返します。 (DbCommandBuilder.UnquoteIdentifier(String) をオーバーライドします。)

Top

イベント

  名前 説明
パブリック イベント Disposed (Component から継承されます。)

Top

説明

SelectCommand プロパティを設定した場合は、単一テーブルを更新する Transact-SQL ステートメントを自動的に生成する SqlCeCommandBuilder オブジェクトを作成できます。

DataAdapter プロパティを設定すると、SqlCeCommandBuilder が RowUpdating イベントのリスナーとして自動的に登録されます。相互に関連付けることのできる SqlCeDataAdapter オブジェクトと SqlCeCommandBuilder オブジェクトは、それぞれ一度に 1 つだけです。

SqlCeCommandBuilder では、INSERT、UPDATE、または DELETE ステートメントを生成するために、SelectCommand プロパティを通じて必要なメタデータ セットが自動的に取得されます。最初の更新の後など、メタデータが取得された後で SelectCommand を変更した場合は、RefreshSchema() メソッドを呼び出してメタデータを更新する必要があります。

また、SelectCommand は、少なくとも 1 つの主キー列または一意な列を返すようにする必要があります。これらの列が存在しない場合は、InvalidOperation 例外が生成され、コマンドは生成されません。

また、SqlCeCommandBuilder では、SelectCommand が参照する Connection プロパティと Transaction プロパティも使用されます。これらのいずれかのプロパティを変更した場合、または SelectCommand 自体を置き換えた場合は、RefreshSchema() を呼び出す必要があります。この操作を行わないと、InsertCommandUpdateCommand、および DeleteCommand の各プロパティは、変更前の値のままになります。

Dispose() を呼び出すと、SqlCeCommandBuilder と SqlCeDataAdapter の関連付けが解除され、生成されたコマンドは使用されなくなります。

使用例

SqlCeCommandSqlCeDataAdapter および SqlCeConnection と共に使用して、データ ソースから行を選択する例を次に示します。この例では、接続文字列、クエリ文字列、およびデータベース テーブル名を表す文字列が渡されます。これらを基に、SqlCeCommandBuilder を作成します。データ アダプターによってコマンド ビルダーが使用され、ローカル データベース内の変更された DataSet が更新されます。

Try
    Dim conn As New SqlCeConnection("Data Source = MyDatabase.sdf")
    conn.Open()

    Dim cmd As SqlCeCommand = conn.CreateCommand()
    cmd.CommandText = "SELECT * FROM employees"

    Dim adp As New SqlCeDataAdapter(cmd)

    Dim cb As New SqlCeCommandBuilder()
    cb.DataAdapter = adp

    MessageBox.Show(cb.GetUpdateCommand().CommandText)
    MessageBox.Show(cb.GetInsertCommand().CommandText)
    MessageBox.Show(cb.GetDeleteCommand().CommandText)

    Dim ds As New DataSet("test")
    adp.Fill(ds)

    ' Modify the contents of the DataSet
    '
    ds.Tables(0).Rows(0)("First Name") = "Joe"

    adp.Update(ds)

Catch e1 As Exception
    Console.WriteLine(e1.ToString())
End Try
try
{
    SqlCeConnection conn = new SqlCeConnection("Data Source = MyDatabase.sdf");
    conn.Open();

    SqlCeCommand cmd = conn.CreateCommand();
    cmd.CommandText = "SELECT * FROM employees";

    SqlCeDataAdapter adp = new SqlCeDataAdapter(cmd);

    SqlCeCommandBuilder cb = new SqlCeCommandBuilder();
    cb.DataAdapter = adp;

    MessageBox.Show(cb.GetUpdateCommand().CommandText);
    MessageBox.Show(cb.GetInsertCommand().CommandText);
    MessageBox.Show(cb.GetDeleteCommand().CommandText);

    DataSet ds = new DataSet("test");
    adp.Fill(ds);

    // Modify the contents of the DataSet
    //
    ds.Tables[0].Rows[0]["First Name"] = "Joe";

    adp.Update(ds);

}
catch (Exception e1)
{
    Console.WriteLine(e1.ToString());
}

スレッド セーフ

この型の public static (Microsoft Visual Basic では Shared) のすべてのメンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

関連項目

参照

System.Data.SqlServerCe 名前空間