sqlconnection,sqlcommand,SqlDataAdapter ,ExecuteNonQuery,ExecuteScalar
sqlconnection:表示 SQL Server 數(shù)據(jù)庫的一個打開的連接。SqlConnection 對象表示與 SQL Server 數(shù)據(jù)源的一個唯一的會話。 在客戶端/服務(wù)器數(shù)據(jù)庫系統(tǒng)中,它等效于一個到服務(wù)器的網(wǎng)絡(luò)連接。 SqlConnection 與 SqlDataAdapter 和 SqlCommand 一起使用,以便在連接到 Microsoft SQL Server 數(shù)據(jù)庫時提高性能。http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlconnection
sqlcommand:表示要對 SQL Server 數(shù)據(jù)庫執(zhí)行的一個 Transact-SQL 語句或存儲過程。 此類不能被繼承。當(dāng)創(chuàng)建 SqlCommand 的實例時,讀/寫屬性將被設(shè)置為它們的初始值。http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand.aspx
SqlDataAdapter :表示用于填充 DataSet 和更新 SQL Server 數(shù)據(jù)庫的一組數(shù)據(jù)命令和一個數(shù)據(jù)庫連接。 此類不能被繼承。 是 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ù))來提供這一橋接。 更新是逐行進(jìn)行的。 對于每個已插入、修改和刪除的行,Update 方法會確定已對其執(zhí)行的更改的類型(Insert、Update 或 Delete)。 根據(jù)更改類型,執(zhí)行 Insert、Update 或 Delete 命令模板將已修改的行傳播給數(shù)據(jù)源。 當(dāng) SqlDataAdapter 填充 DataSet 時,它為返回的數(shù)據(jù)創(chuàng)建必需的表和列(如果這些表和列尚不存在)。 但是,除非 MissingSchemaAction 屬性設(shè)置為 AddWithKey,否則這個隱式創(chuàng)建的架構(gòu)中不包括主鍵信息。 也可以使用 FillSchema,讓 SqlDataAdapter 創(chuàng)建 DataSet 的架構(gòu),并在用數(shù)據(jù)填充它之前就將主鍵信息包括進(jìn)去。http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldataadapter.aspx
ExecuteNonQuery:主 要用于更新數(shù)據(jù),通常它使用Update,Insert,Delete語句來操作數(shù)據(jù)庫,其方法返回值意義:對于 Update,Insert,Delete 語句 執(zhí)行成功是返回值為該命令所影響的行數(shù),如果影響的行數(shù)為0時返回的值為0,如果數(shù)據(jù)操作回滾得話返回值為-1,對于這種更新操作 用我們平時所用的是否大于0的判斷操作應(yīng)該沒有問題而且比較好,但是對于其他的操作如對數(shù)據(jù)庫結(jié)構(gòu)的操作,如果操作成功時返回的卻是-1,這種情況跟我們 平時的思維方式有點差距所以應(yīng)該好好的注意了,例如對數(shù)據(jù)庫共添加一個數(shù)據(jù)表的Create操作,當(dāng)創(chuàng)建數(shù)據(jù)表成功時返回-1,如果操作失敗的話(如數(shù)據(jù)表已經(jīng)存在)往往會發(fā)生異常,所以執(zhí)行這種操作時最好用try--catch--語句來容錯
SqlDataReader:提供一種從 SQL Server 數(shù)據(jù)庫讀取行的只進(jìn)流的方式。此類不能被繼承
若要創(chuàng)建 SqlDataReader,必須調(diào)用 SqlCommand 對象的 ExecuteReader 方法,而不要直接使用構(gòu)造函數(shù)。
在使用 SqlDataReader 時,關(guān)聯(lián)的 SqlConnection 正忙于為 SqlDataReader 服務(wù),對 SqlConnection 無法執(zhí)行任何其他操作,只能將其關(guān)閉。 除非調(diào)用 SqlDataReader 的 Close 方法,否則會一直處于此狀態(tài)。 例如,在調(diào)用 Close 之前,無法檢索輸出參數(shù)。
SqlDataReader 的用戶可能會看到在讀取數(shù)據(jù)時另一進(jìn)程或線程對結(jié)果集所做的更改。 但是,確切的行為與執(zhí)行時間有關(guān)。
當(dāng) SqlDataReader 關(guān)閉后,只能調(diào)用 IsClosed 和 RecordsAffected 屬性。 盡管當(dāng) SqlDataReader 存在時可以訪問 RecordsAffected 屬性,但是請始終在返回 RecordsAffected 的值之前調(diào)用 Close,以保證返回精確的值。
ExecuteScalar:執(zhí)行查詢,并返回查詢所返回的結(jié)果集中第一行的第一列。
使用 ExecuteScalar 方法從數(shù)據(jù)庫中檢索單個值(例如一個聚合值)。 與使用 ExecuteReader 方法,然后使用 SqlDataReader 返回的數(shù)據(jù)執(zhí)行生成單個值所需的操作相比,此操作需要的代碼較少。
轉(zhuǎn)載于:https://www.cnblogs.com/07520222sharon/archive/2011/06/11/2078477.html
總結(jié)
以上是生活随笔為你收集整理的sqlconnection,sqlcommand,SqlDataAdapter ,ExecuteNonQuery,ExecuteScalar的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LINUX下SVN命令大全
- 下一篇: 分手个性签名女生伤感