SqlDataAdapter 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表一組資料指令及資料庫連接,用於填充 DataSet 及更新 SQL Server 資料庫。 無法繼承這個類別。
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable, System::Data::IDbDataAdapter
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable, System.Data.IDbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable
type SqlDataAdapter = class
inherit DbDataAdapter
interface IDbDataAdapter
interface IDataAdapter
interface ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable, IDbDataAdapter
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable
- 繼承
- 實作
範例
以下範例使用 SqlCommand、 SqlDataAdapter、 SqlConnection 來從資料庫中選取紀錄,並將選取的列填充 a 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,作為 A DataSet 與 SQL Server 之間的橋樑,用於擷取與儲存資料。 透過 SqlDataAdapter 映射 Fill,將 中的資料 DataSet 與資料來源中的資料相匹配, Update以及 ,透過適當的 Transact-SQL 語句,使資料來源中的資料與 中的資料相符 DataSet,提供此橋接。 更新是以每列方式進行。 對於每一列插入、修改和刪除的列,方法 Update 會判定該列所執行的變更類型(Insert、 Update、 或 Delete)。 根據變更類型, Insert執行 、 Update或 Delete 指令範本,將修改後的資料列傳播至資料來源。 當 填 SqlDataAdapter 入 時 DataSet,若回傳資料尚未存在,則會建立必要的資料表與欄位。 然而,除非 MissingSchemaAction 將屬性設為 AddWithKey,否則隱式建立的結構中不會包含主鍵資訊。 你也可以先 SqlDataAdapter 建立 的結構 DataSet結構,包含主鍵資訊,然後再用 來填充資料 FillSchema。 欲了解更多資訊,請參閱 「將現有約束加入資料集」。
SqlDataAdapter 與 SqlConnection 連接 SQL Server 資料庫時搭配使用, SqlCommand 以提升效能。
備註
如果您要使用 SQL Server 預存程序搭配 DataAdapter 來編輯或刪除資料,請務必不要在預存程序定義中使用 SET NOCOUNT ON。 因為這樣會讓傳回的受影響資料列計數成為零,而 DataAdapter 會將它解譯為並行衝突。 在此事件中,系統會擲回 DBConcurrencyException。
同時 SqlDataAdapter 也包含 SelectCommand、 InsertCommand、 DeleteCommand、 UpdateCommand及 TableMappings 屬性,以便載入與更新資料。
當建立 的 SqlDataAdapter 實例時,讀寫屬性會設定為初始值。 如需這些值的清單,請參閱建構函式 SqlDataAdapter 。
InsertCommand DeleteCommand這些、 、 UpdateCommand 是通用範本,會自動從參數機制中從每一筆修改的列中填充個別值。
對於你傳播到資料來源Update的每一欄,都應該在 、 UpdateCommand、 或 DeleteCommand中加入一個參數。InsertCommand
SourceColumn物件的DbParameter屬性應該設為欄位名稱。 此設定表示參數值並非手動設定,而是從當前處理列中的特定欄位取出。
備註
若呼叫該Fill方法且資料表包含用戶端電腦無法使用的使用者定義型態,則會發生 AInvalidOperationException。 如需詳細資訊,請參閱 CLR 使用者定義型別。
建構函式
| 名稱 | Description |
|---|---|
| SqlDataAdapter() |
初始化 SqlDataAdapter 類別的新執行個體。 |
| SqlDataAdapter(SqlCommand) |
初始化一個以指定SqlCommandSelectCommand屬性為屬性的新類別實例SqlDataAdapter。 |
| SqlDataAdapter(String, SqlConnection) |
初始化一個包含 a SelectCommand 和 SqlConnection 物件的新類別實例SqlDataAdapter。 |
| SqlDataAdapter(String, String) |
初始化一個新的類別實例 SqlDataAdapter ,包含 a SelectCommand 和一個連接字串。 |
欄位
| 名稱 | Description |
|---|---|
| DefaultSourceTableName |
物件用於資料表映射的預設名稱 DataAdapter 。 (繼承來源 DbDataAdapter) |
屬性
| 名稱 | Description |
|---|---|
| AcceptChangesDuringFill |
在任何填充操作中加入 時DataTable,會取得或設定一個值,AcceptChanges()表示是否在 上被呼叫DataRow。 (繼承來源 DataAdapter) |
| AcceptChangesDuringUpdate |
在 中 被呼叫 時,若 被呼叫Update(DataSet),則 得到或設定 AcceptChanges() 。 (繼承來源 DataAdapter) |
| CanRaiseEvents |
會得到一個值,表示該元件是否能引發事件。 (繼承來源 Component) |
| Container |
得到 IContainer 包含 Component的 。 (繼承來源 Component) |
| ContinueUpdateOnError |
取得或設定一個值,指定在資料列更新中遇到錯誤時是否要產生例外。 (繼承來源 DataAdapter) |
| DeleteCommand |
取得或設定 Transact-SQL 語句或儲存程序以刪除資料集中的紀錄。 |
| DesignMode |
會得到一個值,表示目前 Component 是否處於設計模式。 (繼承來源 Component) |
| Events |
會取得與此 Component連結的事件處理程序清單。 (繼承來源 Component) |
| FillCommandBehavior |
接收或設定用來填充資料介面卡的指令行為。 (繼承來源 DbDataAdapter) |
| FillLoadOption |
取得或設定 ,LoadOption決定轉接器如何從 中填充 。DataTableDbDataReader (繼承來源 DataAdapter) |
| InsertCommand |
取得或設定 Transact-SQL 語句或儲存程序,以將新紀錄插入資料來源。 |
| MissingMappingAction |
當輸入資料沒有相符的資料表或欄位時,決定應採取的行動。 (繼承來源 DataAdapter) |
| MissingSchemaAction |
當現有 DataSet 結構與輸入資料不符時,決定應採取的行動。 (繼承來源 DataAdapter) |
| ReturnProviderSpecificTypes |
取得或設定方法應 |
| SelectCommand |
取得或設定一個 Transact-SQL 語句或儲存程序,用於選擇資料來源中的紀錄。 |
| Site | (繼承來源 Component) |
| TableMappings |
取得一個集合,提供來源資料表與 DataTable之間的主要映射。 (繼承來源 DataAdapter) |
| UpdateBatchSize |
取得或設定每次往返伺服器時處理的列數。 |
| UpdateCommand |
取得或設定用於更新資料來源記錄的 Transact-SQL 語句或儲存程序。 |
方法
事件
| 名稱 | Description |
|---|---|
| Disposed |
當元件被呼叫方法 Dispose() 時會發生。 (繼承來源 Component) |
| FillError |
當填充操作發生錯誤時,會回傳此訊息。 (繼承來源 DbDataAdapter) |
| RowUpdated |
發生在 Update(DataSet) 對資料來源執行指令後。 嘗試更新時,事件就會觸發。 |
| RowUpdating |
發生在 Update(DataSet) 對資料來源執行指令之前。 嘗試更新時,事件就會觸發。 |
明確介面實作
| 名稱 | Description |
|---|---|
| ICloneable.Clone() |
關於此成員的描述,請參見 Clone()。 |
| IDataAdapter.TableMappings |
取得一個集合,指示來源資料表如何映射到資料集資料表。 (繼承來源 DataAdapter) |
| IDbDataAdapter.DeleteCommand |
關於此成員的描述,請參見 DeleteCommand。 |
| IDbDataAdapter.InsertCommand |
關於此成員的描述,請參見 InsertCommand。 |
| IDbDataAdapter.SelectCommand |
關於此成員的描述,請參見 SelectCommand。 |
| IDbDataAdapter.UpdateCommand |
關於此成員的描述,請參見 UpdateCommand。 |