SqlCommandBuilder クラスとは? わかりやすく解説

SqlCommandBuilder クラス

SQL Server データベース関連付けられた DataSet への変更調整するための単一テーブル コマンド自動的に生成します。このクラス継承できません。

名前空間: System.Data.SqlClient
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public NotInheritable Class
 SqlCommandBuilder
    Inherits DbCommandBuilder
Dim instance As SqlCommandBuilder
public sealed class SqlCommandBuilder : DbCommandBuilder
public ref class SqlCommandBuilder sealed :
 public DbCommandBuilder
public final class SqlCommandBuilder extends
 DbCommandBuilder
public final class SqlCommandBuilder extends
 DbCommandBuilder
解説解説

SqlDataAdapter では、SQL Serverインスタンス関連付けられた DataSet への変更調整する Transact-SQL ステートメント自動的に生成されません。ただし、SqlDataAdapter の SelectCommand プロパティ設定した場合は、単一テーブル更新する Transact-SQL ステートメント自動的に生成する SqlCommandBuilder オブジェクト作成できます。これによって、追加Transact-SQL ステートメントが、SqlCommandBuilder によって自動的に生成されます。

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

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

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

また、SqlCommandBuilder では、SelectCommand参照する Connection、CommandTimeout、および Transaction プロパティ使用されます。これらの 1 つ上のプロパティ変更した場合、または SelectCommand 自体置き換えた場合は、ユーザーRefreshSchema呼び出す必要があります。この操作行わないと、InsertCommand、UpdateCommand、および DeleteCommand プロパティが、変更前の値のままになります

Dispose呼び出すと、SqlCommandBuilderSqlDataAdapter関連付け解除され生成されコマンド使用されなくなります

使用例使用例

SqlCommand を SqlDataAdapter および SqlConnection と共に使用してデータ ソースら行選択する例を次に示します。この例では、接続文字列Transact-SQL SELECT ステートメントクエリ文字列、およびデータベース テーブル名の文字列渡されます。これらを基に、SqlCommandBuilder作成します

Private Function SelectSqlRows(ByVal
 connectionString As String, _
    ByVal queryString As String,
 ByVal tableName As String)
 As DataSet

    Using connection As New SqlConnection(connectionString)

        Dim adapter As New
 SqlDataAdapter()
        adapter.SelectCommand = New SqlCommand(queryString, connection)
        Dim builder As SqlCommandBuilder =
 New SqlCommandBuilder(adapter)

        connection.Open()

        Dim dataSet As DataSet = New
 DataSet
        adapter.Fill(dataSet, tableName)

        ' Code to modify data in DataSet here 

        ' Without the SqlCommandBuilder this line would fail.
        adapter.Update(dataSet, tableName)

        Return dataSet
    End Using
 End Function
public static DataSet SelectSqlRows(string
 connectionString,
    string queryString, string tableName)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        SqlDataAdapter adapter = new SqlDataAdapter();
        adapter.SelectCommand = new SqlCommand(queryString, connection);
        SqlCommandBuilder builder = new SqlCommandBuilder(adapter);

        connection.Open();

        DataSet dataSet = new DataSet();
        adapter.Fill(dataSet, tableName);

        //code to modify data in DataSet here

        //Without the SqlCommandBuilder this line would fail
        adapter.Update(dataSet, tableName);

        return dataSet;
    }
}
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Data.Common.DbCommandBuilder
        System.Data.SqlClient.SqlCommandBuilder
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「SqlCommandBuilder クラス」の関連用語

SqlCommandBuilder クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SqlCommandBuilder クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS