次の方法で共有


SqlCeCommandBuilder.GetUpdateCommand Method ()

アプリケーションが SqlCeDataAdapter に対して Update を呼び出したときにデータベースで更新処理を実行するための、自動生成された SqlCeCommand オブジェクトを取得します。

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

構文

'宣言
Public Function GetUpdateCommand As SqlCeCommand
public SqlCeCommand GetUpdateCommand ()
public:
SqlCeCommand^ GetUpdateCommand ()
public SqlCeCommand GetUpdateCommand ()
public function GetUpdateCommand () : SqlCeCommand

戻り値

更新を実行するための自動生成された SqlCeCommand オブジェクト。

解説

GetUpdateCommand メソッドは、実行する SqlCeCommand オブジェクトを返します。アプリケーションでは、これを情報の取得またはトラブルシューティングに利用できます。

GetUpdateCommand は、変更して使用するコマンドの基礎としても使用できます。たとえば、GetUpdateCommand を呼び出し、そのプロパティのいずれかを変更してから、そのコマンドを明示的に SqlCeDataAdapter に設定できます。

SQL ステートメントが最初に生成された後で、アプリケーションが何らかの方法でそのステートメントを変更した場合は、アプリケーションで明示的に RefreshSchema を呼び出す必要があります。この処理を行わないと、GetUpdateCommand では、古いステートメント情報が使用されます。この情報は、正しくない可能性があります。SQL ステートメントは、アプリケーションが Update または GetUpdateCommand を呼び出したときに、最初に生成されます。

SqlCeCommandBuilderGetUpdateCommand メソッドを呼び出す例を次に示します。

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 (Visual Basic では Shared ) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

開発プラットフォーム

Windows Vista、Windows Mobile 5.0、Windows XP Professional with Service Pack 2 (SP2)、Windows Server 2003、Windows Mobile 2003 for Pocket PC、Windows CE 5.0
バージョン情報
.NET Framework および .NET Compact Framework
3.5 でサポート
.NET Framework
3.0 でサポート
.NET Compact Framework および .Net Framework
2.0 でサポート

参照

リファレンス

SqlCeCommandBuilder Class
SqlCeCommandBuilder Members
System.Data.SqlServerCe Namespace