C#數(shù)據(jù)庫編程中SqlDataAdapter與DataSet的區(qū)別
SqlDataAdapter 是DataSet 和SQL Server 之間的橋接器,用于檢索和保存數(shù)據(jù)。SqlDataAdapter 通過對數(shù)據(jù)源使用適當(dāng)?shù)?Transact-SQL 語句映射 Fill(它可更改 DataSet 中的數(shù)據(jù)以匹配數(shù)據(jù)源中的數(shù)據(jù))和 Update(它可更改數(shù)據(jù)源中的數(shù)據(jù)以匹配 DataSet 中的數(shù)據(jù))來提供這一橋接。
當(dāng)SqlDataAdapter 填充 DataSet 時,它將為返回的數(shù)據(jù)創(chuàng)建必要的表和列(如果它們尚不存在)。但是,除非 MissingSchemaAction 屬性設(shè)置為 AddWithKey,否則這個隱式創(chuàng)建的架構(gòu)中就將不包括主鍵信息。也可以在使用 FillSchema 為數(shù)據(jù)集填充數(shù)據(jù)前,讓 SqlDataAdapter 創(chuàng)建 DataSet 的架構(gòu)(包括主鍵信息)。有關(guān)更多信息,請參見向 DataSet 添加現(xiàn)有約束。
SqlDataAdapter 與SqlConnection 和SqlCommand一起使用,以便在連接到Microsoft SQL Server 數(shù)據(jù)庫時提高性能。
SqlDataAdapter 還包括 SelectCommand、InsertCommand、DeleteCommand、UpdateCommand 和 TableMappings 屬性,使C#數(shù)據(jù)庫編程中的數(shù)據(jù)加載和更新更加方便。
C#數(shù)據(jù)庫編程示例
以下C#數(shù)據(jù)庫編程示例使用 SqlCommand、SqlDataAdapter 和 SqlConnection,從數(shù)據(jù)庫選擇記錄,并用選定的行填充 DataSet。然后返回已填充的 DataSet。為完成此任務(wù),向該方法傳遞一個已初始化的 DataSet、一個連接字符串和一個查詢字符串,后者是一個 Transact-SQL SELECT 語句。
- public DataSet SelectSqlSrvRows(DataSet dataset,string connection,string query)
- {
- SqlConnection conn = new SqlConnection(connection);
- SqlDataAdapter adapter = new SqlDataAdapter();
- adapter.SelectCommand = new SqlCommand(query, conn);
- adapter.Fill(dataset);
- return dataset;
- }
【編輯推薦】