ADO.NET中COMMAND對象的ExecuteNonQuery、ExcuteReader和ExecuteScalar方法

來源:互聯網
上載者:User

標籤:cal   錯誤   過程   cut   建設   let   insert   檢索   行資料   

1、ExecuteNonQuery方法。
該方法執行更新操作,即與UPDATE、INSERT、DELETE等語句有關的操作,在這種情況下,傳回值是命令影響的行數。對其他語句,如SET或CREATE,則返回-1,如果發生復原,傳回值也是-1。

2、ExcuteReader方法。
它與查詢命令一起使用,返回一個資料閱讀器對象SqlDataReader類的一個執行個體。該方法執行更新語句,執行成功後,不會返回任何受影響的資料行。

3、ExecuteScalar方法。
如果只想檢索資料庫資訊中的已個值,而不需要返回表或資料流形式的資料庫資訊。例如,只需返回COUNT(*)、SUM(Price)或AVG(Quantity)等彙總函式的結果,該方法適合。如果在一個常規的查詢語句中調用該方法,則唯讀取第一行第一列的值,而丟棄所有其他值

 

ExecuteReader:可以讀一個表的記錄,只能讀不能寫

ExecuteScalar:只能讀一條記錄,一般用來判斷資料庫是否有資料等,只能讀不能寫

ExecuteNonQuery:可以寫以可以讀,

 首先,我們知道這三個東東應該是ADO.NET中對資料庫中操作的CMD,我們知道,如果我們要進行一個網讓建設,必然在這個過程中,我們一定要進行與資料庫的互動,我們要不斷地進行資料庫的讀寫,那麼ExecuteNonQuery(),ExecuteReader()與ExecuteScalar()就是我們在對資料庫進行操作時要用到的,下面我來依次認識一下:

    ExecuteNonQuery():這個東東可以讓我們在更新資料庫時不使用 DataSet 而使用 ExecuteNonQuery 更改資料庫中的資料。通過執行 UPDATE、INSERT 或 DELETE SQL語句就可以達到更改資料庫中的資料目的。即使 ExecuteNonQuery 不返回任何行,映射到參數的輸出參數或傳回值仍然使用資料填充。但對於 UPDATE、INSERT 和 DELETE SQL語句,返回的值就是受ExecuteNonQuery()命令影響的行數。對其它類型的語句以及回退來說,返回的值都是 -1。

   ExecuteReader():我們通常在asp中用Recordset對象來從資料庫中讀出資料,並且用迴圈語句來一個一個的讀出資料,但在我們的ADO.NET中,我們就是用DataReader 對象的ExecuteReader()方法來進行資料的列出,並且我們用這個ExecuteReader()方法來顯示資料是最快的一種方法,因為當我們在用ExecuteReader()方法中的DataReader 對象來進行資料的在網站建設中顯示時,他只可以一條一條向前讀,不能返回,也就是像ASP中的ADO方法中的Recordset 對象的Movenext一樣,他沒有move -1這樣的返回方法。

    ExecuteScalar():這種CMD相當於我們在ADO中用SQL語句中使用一些計算函數的功能一樣,在這裡我們只是返回所有影響的行數的第一行第一列資料,這樣也就是相當於專業為我們的如:select count(*) from database的功能一樣,我們可以用

string sql="select * from  database"

SqlCommand cmd=SqlCommand(sql,conn)

int i=(int)cmd.ExecuteScalar()

這樣我們的局部變更i的值就是與上面我的功能一樣.

    最後值得一說的是:這是出自我平時所用的時候的一些認識:那就是如果我們在進行資料操作時,如果沒有資料可操作,那麼我們只能使用ExecuteReader()這個CMD,而executeNoeQuery()與Executescalar()如果在沒有資料的時候使用時,就會出錯“對像沒有執行個體化”的錯誤。所以我們在判斷是否有資料時,只可以用ExecuteReader()中的REad()方法來檢測。

ADO.NET中COMMAND對象的ExecuteNonQuery、ExcuteReader和ExecuteScalar方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.