程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> ADO.NET中SqlCommand對數據庫操作

ADO.NET中SqlCommand對數據庫操作

編輯:C#入門知識

我們要不斷地進行數據庫的讀寫,那麼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()方法來檢測。

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved