C#中ExecuteNonQuery()返回值注意點(diǎn)分析
本文實(shí)例講述了C#中ExecuteNonQuery()返回值注意點(diǎn)。對(duì)于C#數(shù)據(jù)庫(kù)程序設(shè)計(jì)有一定的借鑒價(jià)值。分享給大家供大家參考之用。具體分析如下:
首先,在查詢某個(gè)表中是否有數(shù)據(jù)的時(shí)候,我們通常用ExecuteNonQuery(),并通過(guò)判斷值是否大于0來(lái)判斷數(shù)據(jù)的存在與否。結(jié)果與我所設(shè)想的很不一致,調(diào)試時(shí)才發(fā)現(xiàn),其執(zhí)行后返回的結(jié)果是-1,對(duì)此我很是不理解,回頭查了下資料,如下顯示:
SqlCommand.ExecuteNonQuery 方法對(duì)連接執(zhí)行 Transact-SQL 語(yǔ)句并返回受影響的行數(shù)。
備注:可以使用 ExecuteNonQuery 來(lái)執(zhí)行目錄操作(例如查詢數(shù)據(jù)庫(kù)的結(jié)構(gòu)或創(chuàng)建諸如表等的數(shù)據(jù)庫(kù)對(duì)象),或通過(guò)執(zhí)行 UPDATE、INSERT 或 DELETE 語(yǔ)句,在不使用 DataSet 的情況下更改數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
雖然 ExecuteNonQuery 不返回任何行,但映射到參數(shù)的任何輸出參數(shù)或返回值都會(huì)用數(shù)據(jù)進(jìn)行填充。對(duì)于 UPDATE、INSERT 和 DELETE 語(yǔ)句,返回值為該命令所影響的行數(shù)。對(duì)于所有其他類(lèi)型的語(yǔ)句,返回值為 -1。如果發(fā)生回滾,返回值也為 -1
看完后才明白,原來(lái)select語(yǔ)句不適合ExecuteNonQuery()方法,原來(lái)是這樣,方法用錯(cuò)了!現(xiàn)在特意把它記錄下來(lái),希望朋友不要犯類(lèi)似的錯(cuò)誤!
public int ExecuteNonQuery();
返回值
受影響的行數(shù)。
實(shí)現(xiàn)
IDbCommand.ExecuteNonQuery
備注:
你可以使用 ExecuteNonQuery 來(lái)執(zhí)行目錄操作(例如查詢數(shù)據(jù)庫(kù)的結(jié)構(gòu)或創(chuàng)建諸如表等的數(shù)據(jù)庫(kù)對(duì)象),或通過(guò)執(zhí)行 UPDATE、INSERT 或 DELETE 語(yǔ)句,在不使用 DataSet 的情況下更改數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
雖然 ExecuteNonQuery 不返回任何行,但映射到參數(shù)的任何輸出參數(shù)或返回值都會(huì)用數(shù)據(jù)進(jìn)行填充。
對(duì)于 UPDATE、INSERT 和 DELETE 語(yǔ)句,返回值為該命令所影響的行數(shù)。對(duì)于其他所有類(lèi)型的語(yǔ)句,返回值為 -1。
public void CreateMySqlCommand(string myExecuteQuery, SqlConnection myConnection)
{
SqlCommand myCommand = new SqlCommand(myExecuteQuery, myConnection);
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
相信本文所述對(duì)大家的C#程序設(shè)計(jì)有一定的借鑒價(jià)值。
- C# ODP.NET 調(diào)用Oracle函數(shù)返回值時(shí)報(bào)錯(cuò)的一個(gè)解決方案
- C# WebApi 接口返回值不困惑:返回值類(lèi)型詳解
- webBrowser執(zhí)行js的方法,并返回值,c#后臺(tái)取值的實(shí)現(xiàn)
- C# 7.0 新特性1之基于Tuple的“多”返回值方法
- C#調(diào)用存儲(chǔ)過(guò)程詳解(帶返回值、參數(shù)輸入輸出等)
- C#一個(gè)方法返回多個(gè)值示例
- C#獲取存儲(chǔ)過(guò)程返回值和輸出參數(shù)值的方法
- C#?函數(shù)返回多個(gè)值的方法詳情
相關(guān)文章
DevExpress實(shí)現(xiàn)GridControl根據(jù)列選中一行
這篇文章主要介紹了DevExpress實(shí)現(xiàn)GridControl根據(jù)列選中一行,比較實(shí)用的功能,需要的朋友可以參考下2014-08-08
c# GridControl的模糊查詢實(shí)現(xiàn)代碼
這篇文章主要介紹了c# GridControl的模糊查詢實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-02-02
Chrome Visual Studio 2005下的編譯過(guò)程
研究Chrome ,首先得把它編譯出來(lái),這對(duì)于后續(xù)的代碼分析和閱讀有很大的幫助,想想自己編譯出一個(gè) Chrome 瀏覽器來(lái)使用,那是一件很炫的事情。2009-07-07
C#?wpf?通過(guò)HwndHost渲染視頻的實(shí)現(xiàn)方法
日常開(kāi)發(fā)中,特別是音視頻開(kāi)發(fā),需要在界面上渲染視頻,比如制作一個(gè)播放器、或者視頻編輯工具、以及視頻會(huì)議客戶端。通常拿到的是像素格式數(shù)據(jù),此時(shí)需要渲染到wpf窗口上就需要一定的方法,本文介紹一種通過(guò)hwnd渲染的方法,控件既能提供hwnd又能嵌入wpf窗口里2021-11-11

