SqlCommandBuilder

SqlCommandBuilder 构造函数

初始化 SqlCommandBuilder 的新例。

列表

初始化 SqlCommandBuilder 的新例。

.NET Framework 版的支持。

[Visual Basic] Public Sub New()

[C#] public SqlCommandBuilder();

[C++] public: SqlCommandBuilder();

[JScript] public function SqlCommandBuilder();

使用关联SqlDataAdapter 象初始化 SqlCommandBuilder 的新例。

.NET Framework 版的支持。

[Visual Basic] Public Sub New(SqlDataAdapter)

[C#] public SqlCommandBuilder(SqlDataAdapter);

[C++] public: SqlCommandBuilder(SqlDataAdapter*);

[JScript] public function SqlCommandBuilder(SqlDataAdapter);

 

命名空System.Data.SqlClient

平台Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Framework  - Windows CE .NET

程序集System.Data ( System.Data.dll )

生成具有以下用途的表命令:使 DataSet 所做的更改与关联 SQL Server 数据协调。不能承此

型所有成的列表, SqlCommandBuilder

System.Object
   System.MarshalByRefObject
      System.ComponentModel.Component
         System.Data.SqlClient.SqlCommandBuilder

[Visual Basic]

NotInheritable Public Class SqlCommandBuilder

   Inherits Component

[C#]

public sealed class SqlCommandBuilder : Component

[C++]
public __gc __sealed class SqlCommandBuilder : public Component

 

[JScript]
public class SqlCommandBuilder extends Component线程安全

型的所有公共静Visual Basic Shared)成员对线程操作而言都是安全的。但不保任何例成线程安全的。

SqlDataAdapter 不会自生成实现 DataSet 的更改与关联 SQL Server 例之协调所需的 Transact-SQL 句。但是,如果置了 SqlDataAdapter SelectCommand 属性,可以建一个 SqlCommandBuilder 象来自生成用于表更新的 Transact-SQL 句。然后,SqlCommandBuilder 将生成其他任何未置的 Transact-SQL 句。

一旦DataAdapter 属性,SqlCommandBuilder 就将其自身注册 RowUpdating 事件的听器。一次只能将一个 SqlDataAdapter 与一个 SqlCommandBuilder 象(或相反)互相关联

了生成 INSERTUPDATE DELETE 句,SqlCommandBuilder 会自使用 SelectCommand 属性来索所需的元数据集。如果在索元数据后(例如在第一次更新后)更改 SelectCommand则应调RefreshSchema 方法来更新元数据。

SelectCommand 至少返回一个主列或唯一的列。如果什都没有返回,就会InvalidOperation 异常,不生成命令。

SqlCommandBuilder 使用由 SelectCommand 引用的 ConnectionCommandTimeout Transaction 属性。如果修改了任何些属性或者替SelectCommand 本身,用户则应调RefreshSchema。否InsertCommandUpdateCommand DeleteCommand 属性将保留它以前的

如果Dispose会解除 SqlCommandBuilder SqlDataAdapter 关联,并且不再使用所生成的命令。

示例

[Visual Basic, C#, C++] 下面的示例使用 SqlCommand 以及 SqlDataAdapter SqlConnection 从数据源选择行。给该示例传递一个初始化的 DataSet、一个接字符串、一个查询字符串(它是一个 Transact-SQL SELECT 句)和一个包含数据表名称的字符串。然后示例建一个 SqlCommandBuilder

[Visual Basic]

Public Shared Function SelectSqlSrvRows(myConnection As String, mySelectQuery As String, myTableName As String) As DataSet

    Dim myConn As New SqlConnection(myConnection)

    Dim myDataAdapter As New SqlDataAdapter()

    myDataAdapter.SelectCommand = New SqlCommand(mySelectQuery, myConn)

    Dim cb As SqlCommandBuilder = New SqlCommandBuilder(myDataAdapter)

 

    myConn.Open()

 

    Dim ds As DataSet = New DataSet

    myDataAdapter.Fill(ds, myTableName)

 

    ' Code to modify data in DataSet here

 

    ' Without the SqlCommandBuilder this line would fail.

    myDataAdapter.Update(ds, myTableName)

 

    myConn.Close()

End Function 'SelectSqlSrvRows

[C#]

public static DataSet SelectSqlSrvRows(string myConnection, string mySelectQuery, string myTableName)

{

   SqlConnection myConn = new SqlConnection(myConnection);

   SqlDataAdapter myDataAdapter = new SqlDataAdapter();

   myDataAdapter.SelectCommand = new SqlCommand(mySelectQuery, myConn);

   SqlCommandBuilder cb = new SqlCommandBuilder(myDataAdapter);

 

   myConn.Open();

 

   DataSet ds = new DataSet();

   myDataAdapter.Fill(ds, myTableName);

 

   //code to modify data in DataSet here

 

   //Without the SqlCommandBuilder this line would fail

   myDataAdapter.Update(ds, myTableName);

 

   myConn.Close();

 

   return ds;

}

[C++]

public:

    static DataSet* SelectSqlSrvRows(String* myConnection, String* mySelectQuery, String* myTableName)

    {

        SqlConnection* myConn = new SqlConnection(myConnection);

        SqlDataAdapter* myDataAdapter = new SqlDataAdapter();

        myDataAdapter->SelectCommand = new SqlCommand(mySelectQuery, myConn);

        SqlCommandBuilder* cb = new SqlCommandBuilder(myDataAdapter);

 

        myConn->Open();

 

        DataSet* ds = new DataSet();

        myDataAdapter->Fill(ds, myTableName);

 

        //code to modify data in DataSet here

 

        //With->Item[Out] the* SqlCommandBuilder this line would fail

        myDataAdapter->Update(ds, myTableName);

 

        myConn->Close();

 

        return ds;

    };

[JScript] 没有可用于 JScript 的示例。若要 Visual BasicC# C++ 示例,请单击页左上角的筛选

要求

命名空System.Data.SqlClient

平台Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Framework  - Windows CE .NET

程序集System.Data ( System.Data.dll )

SqlCommandBuilder | System.Data.SqlClient 命名空 | :使用 CommandBuilder 建 DataCommands (Visual Basic) | SqlCommandBuilder (Visual J# 法) | C++ 托管 


送有此主的意

© 2001-2002 Microsoft Corporation。保留所有利。