C#連接SQL Server數據庫執行sql腳本的Execute相關方法

ExecuteScalar() :
        這個方法不接受任何參數,僅僅返回查詢結果集中的第一行第一列,而忽略了其它的行和列,而且返回的是一個object類型,在使用之前必須先將它強制轉換爲所需類型。如果返回的僅僅是一個單獨的數據元,則可以使用此方法來提高代碼的性能

ExecuteReader();
      返回一個SqlDataReader對象或OleDbDataReader對象,這個看你的程序的需要去做。可以通過這個對象來檢查查詢結果,它提供了“游水”式的執行方式,即從結果中讀取一行之後,移動到另一行,則前一行就無法再用。有一點要注意的是執行之後,要等到手動去調用Read()方法之後,DataReader對象纔會移動到結果集的第一行,同時此方法也返回一個Bool值,表明下一行是否可用,返回True則可用,返回False則到達結果集末尾。使用DataReader可以提高執行效率,有兩種方式可以提高代碼的性能:一種是基於序號的查找,一個是
使用適當的Get方法來查找。因爲查詢出來的結果一般都不會改變,除非再次改動查詢語句,因此可以通過定位列的位置來查找記錄。用這種方法有一個問題,就是可能知道一列的名稱而不知道其所在的位置,這個問題的解決方案是通過調用DataReader 對象的GetOrdinal(方法,此方法接收一個列名並返回此列名所在的列號.DataReader對象在調用Close()方法即關閉與數據庫的連接,如果在沒有關閉之前又重新打開第二個連接,則會產生一條異常信息

ExecuteNonQuery() :
      這個方法並不返回一個DataReader對象,而是返回一個int類型的值,即在執行之後在數據庫中所影響的行數。

ExecuteScalar適用於“select count “等只返回一個值的情況
ExecuteNonQuery適用於insert delete 和update操作
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章