1. 程式人生 > >Net學習日記_ADO.Net_2_復習總結

Net學習日記_ADO.Net_2_復習總結

為我 ade 什麽是 cat 是什麽 () comm insert 內部

一、ExecuteNonQuery() 執行非查詢語句。

insert update delete 三種基本語句,返回的是數據庫,受影響行數。

在insert中,如果有輸出insered.id ,會返回一個結果集,這個結果集只包含一行一列,這一行一列,就是剛才新增的id。

二、什麽是結果集:sql語句被發送到數據庫引擎,執行之後的一個結果的集合。

三、ExecuteScalar() 取得結果集的首行,首列的值,

因為,這一列的類型不確定,所以返回的是object類型,需要我們自己轉換類型,因為我們寫sql語句的時候,就能確定,將要返回的結果集的首行首列是什麽類型的了,如果返回的結果集一行一列都木有,那麽這個方法就返回null(C#)。

四、ExecuteReader() 執行查詢,返回一個讀取器這個讀取器指向結果集,結果集是在服務器內存中的。

五、DataReader,內部的指針默認是指向結果集的第一行的前面的,只有我們調用了DataReader.Read() 這樣,會到服務器去拿一行數據,才會向前移動一次指針。

DaTaReader.HasRows這個屬性,是表示當前讀取器指向的服務器結果集是否有任何一行數據,只要有數據,不管有多少行,都返回true,一行都木有的,才返回false。

在Cmd.ExecutReader(),數據庫查詢完,就生成結果集,根據結果集返回讀取器,這時候,讀取器的HasRows屬性就被賦值了

Read() 將指向數據庫結果集的指針,向前進一個,並且返回這一行的數據,然後保存在dr中,這樣我們就取到當前指向的這一行的數據

六、Try Catch 保證一個功能出錯了,不會 影響另外的功能,出錯的代碼在try中,只會影響後面的幾行。

七、註入漏洞:拼接出特殊的sql語句,造成數據庫執行錯誤(和預期的執行結果不一致的結果),使用參數化查詢可以避免

參數化查詢:在交給Command對象的sql語句中,用一個@加上幾個字符,組成的一個參數名字,如:@name

然後借助Parameter類,來創建參數對象,並且交給command對象,一起發送到數據庫引擎執行

整個ADO包含兩大部分:數據提供程序,和數據集

NonQuery :非查詢,只要影響行數

Scalar :查詢出來的數據,只要第一行第一列

Reader:查詢出來的數據,全部都要(所有行,所有列),大數據量的

DataSet:查詢出來的數據,全部都要(所有行,所有列),比較小數據量的,因為 DataSet是一次新吧所有查詢出來的數據全部都搬回 本地內存中

Net學習日記_ADO.Net_2_復習總結