1. 程式人生 > >C#中ExecuteReader、ExecuteNonQuery、ExecuteScalar、SqlDataReader、SqlDataAdapter的區別

C#中ExecuteReader、ExecuteNonQuery、ExecuteScalar、SqlDataReader、SqlDataAdapter的區別

所有 html 插入語 叠代 and 建議 由於 一點 插入

ExecuteNonQuery()執行命令對象的SQL語句,返回一個int 類型的變量,返回數據庫操作之後影響的行數。適合用來驗證對數據庫進行增刪改的情況。

2、ExecuteScalar()也可以執行sql語句。如果SQL語句是Select查詢,則僅僅返回查詢結果集中第一行第一列,而忽略其他行和列。如果SQL語句不是Select查詢,則這個返回結果沒任何作用。(建議查詢數據庫時使用)  由於不知道sql語句到底是什麽樣的結構(有可能是int,有可能是Char等其它,)所以ExecuteScalar()方法返回一個最基本的類型Object,這個類型是所有類型的基類,可以轉換為任意類型,所以所以用前需強制轉換。一般用在插入語句後加上一個 select @@identity; 返回插入ID

3.ExecuteReader方法存在的目的:盡可能快的對數據庫進行查詢並得到結果;ExecuteReader 返回一個DataReader對象,如果在SqlCommand對象中調用,則返回SqlDataReader,如果在OledbCommand對象中調用,返回的是OledbDataReader,可以調用DataReader的方法和屬性叠代處理結果集。

4.qlDataReader與SqlDataAdapter+DataSet的區別

一,SqlDataReader //基於連接,只讀訪問 適合數據量較小。(連接模式)

SqlDataAdapter //基於非連接,適於數據量較大時,可以另行修改,最後再把修改結果返回給數據庫。要求資源也大一點 (斷開模式)

二,SqlDataAdapter 讀取數據後將數據集放入DataSet ,DataSet 的數據存在本地客服機內存。

三,SqlDataReader返回的是一個數據讀寫器,只能一條條的讀,操作起來不靈活,一般在只讀的時候才用到。

SqlDataAdapter返回的是數據集或者表,可以對其中的數據作任意操作

原博客地址:https://www.cnblogs.com/wangjian920110/p/5456369.html

C#中ExecuteReader、ExecuteNonQuery、ExecuteScalar、SqlDataReader、SqlDataAdapter的區別