ExecuteNonQuery()返回值的幾種情況
ExecuteNonQuery()方法主要用戶更新數據,通常它使用Update,Inrt,Delete語句來操作數據庫,其方法返回值意義:對于 Update,Inrt,Delete語句執行成功是返回值為該命令所影響的行數,如果影響的行數為0時返回的值為0,如果數據操作回滾得話返回值為-1。
(回滾的意思:刪除由一個或多個部分完成的事務執行的更新。為在應用程序、數據庫或系統錯誤后還原數據庫的完整性,需要使用回滾。回滾泛指程序更新失敗, 返回上一次正確狀態的行為)
對于這種更新操作 用我們平時所用的是否大于0的判斷操作應該沒有問題而且比較好,但是對于其他的操作如對數據庫結構的操作,如果操作成功時返回的卻是-1,這種情況跟我們平時的思維方式有點差距所以應該好好的注意了。
例如對數據庫共添加一個數據表的Create操作,當創建數據表成功時返回-1,如果操作失敗的話(如數據表已經存在)往往會發生異常,所以執行這種操作時最好用try--catch--語句來容錯。
簡單意思是用sql語句創建數據庫,創建數據表等等一些對數據庫結構的操作最好不要用大于0來判斷是否操作成功。
擴展資料
c#數據執行方法:
1、使用ExecuteReader()操作數據庫,執行查詢操作的非常好的方法。
ExecuteReader比DataSet而言,DataReader具有較快的訪問能力,并且能夠使用較少的服務器資源。DataReader對象提供了游標形式的讀取方式,當從結果行中讀取了一行,則游標會繼續讀取到下一行。
通過read方法可以判斷數據是否還有下一行,如果存在數據,則繼續運行返回true,如果沒有數據,則返回fal。DataReader可以提高執行效率,基于序號的查詢可以使用DataReader。
使用ExecuteReader()操作數據庫,通常情況下是使用ExecuteReader()進行數據查詢操作,使用ExecuteReader()查詢數據能夠提升查詢效率,而如果需要進行數據庫事務處理的話,ExecuteReader()并不是一個理想的選擇。
2、使用ExecuteNonQuery(),ExecuteScalar()操作數據庫,執行增刪改操作的利器
ExecuteNonQuery()通常情況下為數據庫事務處理的首選,當需要執行插入,刪除,修改等操作時,首選ExecuteNonQuery(),ExecuteNonQuery()執行成功返回的是一受影響的行數,對于"Create Table"和"Drop Table"語句,返回值是0。
而對于其他類型的語句,返回值是-1,ExecuteNonQuery()操作數據時,可以不使用DataSet直接更改數據庫中的數據。
ExecuteScalar()方法也可以用來執行SQL語句,但是executescalar()執行SQL語句后返回值與ExecuteNonQuery()并不相同,executescalar()方法的返回值的數據類型是object。
如果執行的SQL語句是查詢語句,則返回結果是查詢后的第一行第一列,如果執行的SQL語句不是一個查詢語句,則會返回一個未實例化的對象,必須通過類型裝換來顯示。
一般情況下,ExecuteNonQuery()操作后返回的是一個值,而executescalar()操作后則會返回一個對象,executescalar()經常使用當需要返回單一值時的情況。例如當插入一條數據信息時,需要馬上知道剛才插入的值,則可以使用executescalar()方法。
ExecuteNonQuery()怎么用
“cmd.ExecuteNonQuery()”是什么意思?
這是關于Sql語句中的語句,cmd.ExecuteNonQuery會有一個返回值,將值賦值給整型count,返回受影響的行數值。
執行SQL句,返回受影響行數(判斷執行SQL句是否成功)。
ExecuteNonQuery();與ExecuteNonQuery()>0;各有什么意思
ExecuteNonQuery執行一個SqlCommand,該命令返回受操作影響的行數,該命令主要用于確定操作是否成功,比如插入、刪除和更新操作,如果受影響的行數為0,則證明不成功。大于0表示操作成功。
用于這種更新操作與我們通常的判斷是大于0的操作應該沒有問題,是更好的,但對于其他操作,如數據庫的操作結構,如果返回-1操作成功時,這種情況與我們平常的思維方式有點差距所以應該注意了。
簡單意味著使用SQL語句創建數據庫、創建數據表等。數據庫結構上的某些操作最好不要使用大于0的值來判斷操作是否成功。
擴展資料:
c#數據執行方法:
1.使用ExecuteReader()操作數據庫執行查詢操作的好方法。
ExecuteReader具有比數據集更快的訪問速度,并且可以使用更少的服務器資源。DataReader對象以讀取方式提供游標,當從結果行讀取一行時,游標將繼續讀取下一行。
read方法用于確定下一行數據是否存在。如果有數據,它將繼續運行并返回true。如果沒有數據,則返回fal。DataReader可以提高執行效率,并可用于基于序列號的查詢。
使用ExecuteReader()操作數據庫(通常用于數據查詢操作)可以通過使用ExecuteReader()查詢數據來提高查詢效率,如果需要數據庫事務,那么ExecuteReader()不是理想的選擇。
2.使用ExecuteNonQuery()、ExecuteScalar()對數據庫進行操作、添加、刪除和更改操作
ExecuteNonQuery()通常是數據庫事務的首選方法,在插入、刪除和修改等操作時首選ExecuteNonQuery()。ExecuteNonQuery()在成功執行時返回受影響的行數,“創建表”和“刪除表”語句的返回值為0。
對于其他類型的語句,返回值為-1,ExecuteNonQuery()可以操作數據,而不需要使用數據集直接更改數據庫中的數據。
ExecuteScalar()方法也可以用來執行SQL語句,但是ExecuteScalar()不會返回與ExecuteNonQuery()相同的值,ExecuteScalar()方法返回值的數據類型為object。
如果執行的SQL語句是一個查詢,則結果是查詢后的第一行和第一列。如果執行的SQL語句不是查詢,則返回未實例化的對象,并且必須通過類型加載來顯示。
通常,ExecuteNonQuery()操作返回一個值,而executescalar()操作返回一個對象,當需要返回單個值時,executescalar()通常使用該對象。例如,當插入數據消息并且需要立即知道剛剛插入的值時,可以使用executescalar()方法。
本文發布于:2023-02-28 20:20:00,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/167767005781457.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:executenonquery.doc
本文 PDF 下載地址:executenonquery.pdf
| 留言與評論(共有 0 條評論) |