SqlDataAdapter 類別

定義

代表一組資料命令和資料庫連線,用來填入 DataSet 並更新 SQL Server 資料庫。 此類別無法獲得繼承。

public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable, System::Data::IDbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable, System.Data.IDbDataAdapter
type SqlDataAdapter = class
    inherit DbDataAdapter
    interface IDbDataAdapter
    interface IDataAdapter
    interface ICloneable
type SqlDataAdapter = class
    inherit DbDataAdapter
    interface IDataAdapter
    interface IDbDataAdapter
    interface ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable, IDbDataAdapter
繼承
實作

範例

下列範例會 SqlCommand 使用 、 SqlDataAdapterSqlConnection 來選取資料庫中的記錄,並使用選取的資料列填 DataSet 入 。 接著會傳回填滿 DataSet 。 若要達成此目的,方法會傳遞初始化 DataSet 的 、連接字串,以及 Transact-SQL SELECT 語句的查詢字串。

private static DataSet SelectRows(DataSet dataset,
    string connectionString,string queryString)
{
    using (SqlConnection connection =
        new SqlConnection(connectionString))
    {
        SqlDataAdapter adapter = new SqlDataAdapter();
        adapter.SelectCommand = new SqlCommand(
            queryString, connection);
        adapter.Fill(dataset);
        return dataset;
    }
}
Public Function SelectRows( _
    ByVal dataSet As DataSet, ByVal connectionString As String, _
    ByVal queryString As String) As DataSet

    Using connection As New SqlConnection(connectionString)
        Dim adapter As New SqlDataAdapter()
        adapter.SelectCommand = New SqlCommand( _
            queryString, connection)
        adapter.Fill(dataSet)
        Return dataSet
    End Using
End Function

備註

SqlDataAdapter 為 與 SQL Server 之間的 DataSet 橋接器,用於擷取和儲存資料。 會 SqlDataAdapter 透過對應 Fill 來提供此橋接器,其會變更 中的資料 DataSet 以符合資料來源中的資料,以及 Update ,它會使用適當的 Transact-SQL 語句,針對資料來源變更資料來源中的資料以符合 DataSet 中的資料。 更新會依資料列執行。 針對每個插入、修改和刪除的資料列, Update 方法會決定在 (、 UpdateDelete) 上 Insert 執行的變更類型。 視變更類型而定, InsertUpdateDelete 命令範本會執行 以將修改的資料列傳播至資料來源。 SqlDataAdapter當 填滿 DataSet 時,如果傳回的資料不存在,它會為傳回的資料建立必要的資料表和資料行。 不過,除非 屬性設定 AddWithKey 為 ,否則 MissingSchemaAction 主鍵資訊不會包含在隱含建立的架構中。 您也可以先 SqlDataAdapter 建立 的 DataSet 架構,包括主鍵資訊,再使用 FillSchema 填入資料。 如需詳細資訊,請參閱 將現有條件約束新增至資料集

SqlDataAdapter會與 搭配 SqlConnection 使用 , SqlCommand 以在連線至SQL Server資料庫時提升效能。

注意

如果您要使用 SQL Server 預存程序搭配 DataAdapter 來編輯或刪除資料,請務必不要在預存程序定義中使用 SET NOCOUNT ON。 因為這樣會讓傳回的受影響資料列計數成為零,而 DataAdapter 會將它解譯為並行衝突。 在此事件中,系統會擲回 DBConcurrencyException

SqlDataAdapter也包含 SelectCommandInsertCommandDeleteCommandUpdateCommandTableMappings 屬性,以協助載入和更新資料。

建立 的 SqlDataAdapter 實例時,讀取/寫入屬性會設定為初始值。 如需這些值的清單,請參閱建 SqlDataAdapter 構函式。

InsertCommandDeleteCommandUpdateCommand 是一般範本,會透過參數機制自動填入每個修改資料列的個別值。

針對您傳播至 上 Update 資料來源的每個資料行,應該將 參數加入 InsertCommandUpdateCommandDeleteCommand 。 物件的 SourceColumn 屬性 DbParameter 應該設定為數據行的名稱。 此設定表示參數的值不是手動設定,而是取自目前處理資料列中的特定資料行。

注意

InvalidOperationException如果 Fill 呼叫 方法,而且資料表包含用戶端電腦上無法使用的使用者定義型別,就會發生 。 如需詳細資訊,請參閱 CLR 使用者定義型別

建構函式

SqlDataAdapter()

初始化 SqlDataAdapter 類別的新執行個體。

SqlDataAdapter(SqlCommand)

使用指定 SqlDataAdapter 做為 SqlCommand 屬性,初始化 SelectCommand 類別的新執行個體。

SqlDataAdapter(String, SqlConnection)

使用 SqlDataAdapterSelectCommand 物件,初始化 SqlConnection 類別的新執行個體。

SqlDataAdapter(String, String)

使用 SqlDataAdapter 和連接字串,初始化 SelectCommand 類別的新執行個體。

欄位

DefaultSourceTableName

資料表對應之 DataAdapter 物件所使用的預設名稱。

(繼承來源 DbDataAdapter)

屬性

AcceptChangesDuringFill

取得或設定值,指出在任何一種 Fill 作業期間,當 DataRow 新增至 DataTable 之後,是否要在其上呼叫 AcceptChanges()

(繼承來源 DataAdapter)
AcceptChangesDuringUpdate

取得或設定在 AcceptChanges() 期間是否呼叫 Update(DataSet)

(繼承來源 DataAdapter)
CanRaiseEvents

取得值,指出元件是否能引發事件。

(繼承來源 Component)
Container

取得包含 IContainerComponent

(繼承來源 Component)
ContinueUpdateOnError

取得或設定數值,指定當資料列更新期間發生錯誤時,是否產生例外狀況。

(繼承來源 DataAdapter)
DeleteCommand

取得或設定要從資料集刪除資料錄的 Transact-SQL 陳述式或預存程序。

DesignMode

取得值,指出 Component 目前是否處於設計模式。

(繼承來源 Component)
Events

取得附加在這個 Component 上的事件處理常式清單。

(繼承來源 Component)
FillCommandBehavior

取得或設定用來填入資料配接器 (Adapter) 之命令的行為。

(繼承來源 DbDataAdapter)
FillLoadOption

取得或設定 LoadOption,決定配接器如何從 DataTable 填入 DbDataReader

(繼承來源 DataAdapter)
InsertCommand

取得或設定要將新資料錄插入至資料來源的 Transact-SQL 陳述式或預存程序。

MissingMappingAction

判斷在傳入的資料不具有相符的資料表或資料行時要採取的動作。

(繼承來源 DataAdapter)
MissingSchemaAction

判斷在現有 DataSet 結構描述 (Schema) 與傳入的資料不相符時要採取的動作。

(繼承來源 DataAdapter)
ReturnProviderSpecificTypes

取得或設定 Fill 方法應當傳回提供者特定的值,還是通用符合 CLS 標準的值。

(繼承來源 DataAdapter)
SelectCommand

取得或設定用來在資料來源中選取資料錄的 Transact-SQL 陳述式或預存程序。

Site

取得或設定 ComponentISite

(繼承來源 Component)
TableMappings

取得集合,這個集合提供來源資料表與 DataTable 之間的主要對應。

(繼承來源 DataAdapter)
UpdateBatchSize

取得或設定每一次來回存取伺服器時所處理的資料列數目。

UpdateBatchSize

取得或設定值,其啟用或停用批次處理支援,並指定可於批次中執行的命令數目。

(繼承來源 DbDataAdapter)
UpdateCommand

取得或設定用來在資料來源中更新資料錄的 SQL 陳述式或預存程序。

方法

AddToBatch(IDbCommand)

加入 IDbCommand 至目前批次。

(繼承來源 DbDataAdapter)
ClearBatch()

將所有的 IDbCommand 物件從批次中移除。

(繼承來源 DbDataAdapter)
CloneInternals()
已淘汰.
已淘汰.
已淘汰.
已淘汰.

建立 DataAdapter 的這個執行個體的複本。

(繼承來源 DataAdapter)
CreateObjRef(Type)

建立包含所有相關資訊的物件,這些資訊是產生用來與遠端物件通訊的所需 Proxy。

(繼承來源 MarshalByRefObject)
CreateRowUpdatedEvent(DataRow, IDbCommand, StatementType, DataTableMapping)

初始化 RowUpdatedEventArgs 類別的新執行個體。

(繼承來源 DbDataAdapter)
CreateRowUpdatingEvent(DataRow, IDbCommand, StatementType, DataTableMapping)

初始化 RowUpdatingEventArgs 類別的新執行個體。

(繼承來源 DbDataAdapter)
CreateTableMappings()

建立新的 DataTableMappingCollection

(繼承來源 DataAdapter)
Dispose()

釋放 Component 所使用的所有資源。

(繼承來源 Component)
Dispose(Boolean)

釋放 DbDataAdapter 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

(繼承來源 DbDataAdapter)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
ExecuteBatch()

執行目前批次。

(繼承來源 DbDataAdapter)
Fill(DataSet)

DataSet 中加入或重新整理資料列。

(繼承來源 DbDataAdapter)
Fill(DataSet, Int32, Int32, String)

使用 DataSetDataSet 名稱,加入或重新整理 DataTable 中指定範圍內的資料列,以符合那些在資料來源中的資料列。

(繼承來源 DbDataAdapter)
Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

使用 DataSet、來源資料表名稱、命令字串和命令行為,加入或重新整理 DataSet 中指定範圍內的資料列,以符合那些在資料來源中的資料列。

(繼承來源 DbDataAdapter)
Fill(DataSet, String)

使用 DataSetDataSet 名稱,加入或重新整理 DataTable 中的資料列,以符合那些在資料來源中的資料列。

(繼承來源 DbDataAdapter)
Fill(DataSet, String, IDataReader, Int32, Int32)

使用 DataSetDataTableIDataReader 名稱,新增或重新整理 DataSet 中指定範圍內的資料列,以符合那些在資料來源中的資料列。

(繼承來源 DbDataAdapter)
Fill(DataTable)

使用 DataSet 名稱,加入或重新整理 DataTable 中指定範圍內的資料列,以符合那些在資料來源中的資料列。

(繼承來源 DbDataAdapter)
Fill(DataTable, IDataReader)

使用指定的 DataTableIDataReader 名稱,新增或重新整理 DataTable 中的資料列,以符合那些在資料來源中的資料列。

(繼承來源 DbDataAdapter)
Fill(DataTable, IDbCommand, CommandBehavior)

使用指定的 DataTableDataTableIDbCommand,加入或重新整理 CommandBehavior 中的資料列,以符合那些在資料來源中的資料列。

(繼承來源 DbDataAdapter)
Fill(DataTable[], IDataReader, Int32, Int32)

DataTable 物件集合中所指定的範圍內加入或重新整理資料列,以符合那些在資料來源中的資料列。

(繼承來源 DataAdapter)
Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

使用 DataSetDataSet 名稱,加入或重新整理 DataTable 中指定範圍內的資料列,以符合那些在資料來源中的資料列。

(繼承來源 DbDataAdapter)
Fill(Int32, Int32, DataTable[])

新增或重新整理一或多個 DataTable 物件中的資料列,以符合資料來源中的資料列,從指定的記錄開始,並擷取最多指定的記錄數目上限。

(繼承來源 DbDataAdapter)
FillSchema(DataSet, SchemaType)

將名稱為 "Table" 的 DataTable 加入至指定的 DataSet,並根據指定的 SchemaType,設定結構描述以符合資料來源中的資料表。

(繼承來源 DbDataAdapter)
FillSchema(DataSet, SchemaType, IDbCommand, String, CommandBehavior)

DataTable 加入至指定的 DataSet,並且根據指定的 SchemaType 設定結構描述,以符合資料來源中的資料表。

(繼承來源 DbDataAdapter)
FillSchema(DataSet, SchemaType, String)

DataTable 加入至指定的 DataSet,並且根據指定的 SchemaTypeDataTable 設定結構描述,以符合資料來源中的資料表。

(繼承來源 DbDataAdapter)
FillSchema(DataSet, SchemaType, String, IDataReader)

DataTable 加入至指定的 DataSet

(繼承來源 DataAdapter)
FillSchema(DataTable, SchemaType)

根據指定的 DataTable,設定指定 SchemaType 的結構描述。

(繼承來源 DbDataAdapter)
FillSchema(DataTable, SchemaType, IDataReader)

DataTable 加入至指定的 DataSet

(繼承來源 DataAdapter)
FillSchema(DataTable, SchemaType, IDbCommand, CommandBehavior)

根據指定的 DataTable、命令字串和 SchemaType 值,設定指定 CommandBehavior 的結構描述。

(繼承來源 DbDataAdapter)
GetBatchedParameter(Int32, Int32)

從目前批次中的其中一個命令傳回 IDataParameter

(繼承來源 DbDataAdapter)
GetBatchedRecordsAffected(Int32, Int32, Exception)

傳回在較大之批次更新中嘗試個別更新的相關資訊。

(繼承來源 DbDataAdapter)
GetFillParameters()

取得在執行 SQL SELECT 陳述式時由使用者設定的參數。

(繼承來源 DbDataAdapter)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetLifetimeService()
已淘汰.

擷取控制這個執行個體存留期 (Lifetime) 原則的目前存留期服務物件。

(繼承來源 MarshalByRefObject)
GetService(Type)

傳回表示 Component 或其 Container 所提供之服務的物件。

(繼承來源 Component)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
HasTableMappings()

指出是否已經建立 DataTableMappingCollection

(繼承來源 DataAdapter)
InitializeBatching()

初始化 DbDataAdapter 的批次處理。

(繼承來源 DbDataAdapter)
InitializeLifetimeService()
已淘汰.

取得存留期服務物件,以控制這個執行個體的存留期原則。

(繼承來源 MarshalByRefObject)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
MemberwiseClone(Boolean)

建立目前 MarshalByRefObject 物件的淺層複本。

(繼承來源 MarshalByRefObject)
OnFillError(FillErrorEventArgs)

引發 FillError 事件。

(繼承來源 DbDataAdapter)
OnRowUpdated(RowUpdatedEventArgs)

引發 .NET 資料提供者的 RowUpdated 事件。

(繼承來源 DbDataAdapter)
OnRowUpdating(RowUpdatingEventArgs)

引發 .NET 資料提供者的 RowUpdating 事件。

(繼承來源 DbDataAdapter)
ResetFillLoadOption()

FillLoadOption 重設為其預設狀態,並讓 Fill(DataSet) 接受 AcceptChangesDuringFill

(繼承來源 DataAdapter)
ShouldSerializeAcceptChangesDuringFill()

判斷是否應該保存 AcceptChangesDuringFill 屬性。

(繼承來源 DataAdapter)
ShouldSerializeFillLoadOption()

判斷是否應該保存 FillLoadOption 屬性。

(繼承來源 DataAdapter)
ShouldSerializeTableMappings()

判斷一個或多個 DataTableMapping 物件是否存在並且應該保存 (Persist)。

(繼承來源 DataAdapter)
TerminateBatching()

結束 DbDataAdapter 的批次處理。

(繼承來源 DbDataAdapter)
ToString()

傳回任何包含 Component 名稱的 String。 不應覆寫此方法。

(繼承來源 Component)
Update(DataRow[])

針對 DataSet 的指定陣列中每個插入、更新或刪除的資料列,執行個別的 INSERT、UPDATE 或 DELETE 陳述式,以更新資料庫中的值。

(繼承來源 DbDataAdapter)
Update(DataRow[], DataTableMapping)

針對 DataRow 物件的指定陣列中每個插入、更新或刪除的資料列,執行個別的 INSERT、UPDATE 或 DELETE 陳述式,以更新資料庫中的值。

(繼承來源 DbDataAdapter)
Update(DataSet)

針對指定之 DataSet 中的每個插入、更新或刪除的資料列,執行個別的 INSERT、UPDATE 或 DELETE 陳述式,以更新資料庫中的值。

(繼承來源 DbDataAdapter)
Update(DataSet, String)

針對具有指定 DataTable 名稱之 DataSet 中的每個插入、更新或刪除的資料列,執行個別的 INSERT、UPDATE 或 DELETE 陳述式,以更新資料庫中的值。

(繼承來源 DbDataAdapter)
Update(DataTable)

針對指定之 DataTable 中的每個插入、更新或刪除的資料列,執行個別的 INSERT、UPDATE 或 DELETE 陳述式,以更新資料庫中的值。

(繼承來源 DbDataAdapter)

事件

Disposed

Dispose() 方法的呼叫處置元件時,就會發生。

(繼承來源 Component)
FillError

當填入作業期間發生錯誤時傳回。

(繼承來源 DbDataAdapter)
RowUpdated

發生在已經針對資料來源執行命令後的 Update(DataSet) 期間。 嘗試進行更新,因此引發了事件。

RowUpdating

發生在已經針對資料來源執行命令前的 Update(DataSet) 期間。 嘗試進行更新,因此引發了事件。

明確介面實作

ICloneable.Clone()

如需這個成員的說明,請參閱 Clone()

IDataAdapter.TableMappings

取得集合,指出來源資料表如何對應至資料集資料表。

(繼承來源 DataAdapter)
IDbDataAdapter.DeleteCommand

如需這個成員的說明,請參閱 DeleteCommand

IDbDataAdapter.InsertCommand

如需這個成員的說明,請參閱 InsertCommand

IDbDataAdapter.SelectCommand

如需這個成員的說明,請參閱 SelectCommand

IDbDataAdapter.UpdateCommand

如需這個成員的說明,請參閱 UpdateCommand

適用於

另請參閱