ExecuteNonQuery 返回值 問題

2022-02-26 11:42:52 字數 3239 閱讀 4450

ado.net 資料命令使您能夠直接對資料庫或其他資料來源執行命令,而不需要資料集或資料介面卡。有關更多資訊,請參見 visual studio 中的 datacommand 物件介紹

。1. 可針對資料庫執行的某些型別的資料命令除了返回乙個指出命令成功的值以外不返回任何值。這些命令型別包括:

必須使用資料庫命令執行 ddl 操作;沒有其他方法可以在 ado.net 中執行這些任務。

如果正在使用資料集,則不需要使用單獨的資料命令執行資料庫更新。而是使用資料介面卡更新資料庫。有關更多資訊,請參見 visual studio .net 中的資料集更新。但是,如果使用的不是資料集,則可以直接向資料庫傳送更新命令。有關資料集相對於資料命令的優點的更多資訊,請參見資料訪問策略建議。

對於這兩種型別的命令,命令都返回乙個整數指示操作的成功與否。返回值因是要更新記錄還是發出 ddl 命令而異:

在兩種情況下,如果操作失敗,命令都返回零。

注意 executenonquery() 返回值 問題

前些日子作一些資料專案的時候 在ado.net 中處理 executenonquery()方法時,總是通過判斷其返回值是否大於0來判斷操作時候成功 。但是實際上並不是這樣的,好在處理的資料操作多時 修改, 插入, 刪除,否則的話問題就有點打了,都是些基礎的知識,但是很重要個人覺得有必要記下來。

executenonquery()方法主要使用者更新資料,通常它使用update,insert,delete語句來運算元據庫,其方法返回值意義:對於 update,insert,delete 語句 執行成功是返回值為該命令所影響的行數,如果影響的行數為0時返回的值為0,如果資料操作回滾得話返回值為-1,對於這種更新操作 用我們平時所用的是否大於0的判斷操作應該沒有問題而且比較好,但是對於其他的操作如對資料庫結構的操作,如果操作成功時返回的卻是-1,這種情況跟我們平時的思維方式有點差距所以應該好好的注意了,例如對資料庫共新增乙個資料表的create操作,當建立資料表成功時返回-1,如果操作失敗的話(如資料表已經存在)往往會發生異常,所以執行這種操作時最好用try--catch--語句來容錯。

例如用executenonquery()方法執行create和alter操作

sqlcommand comm = new sqlcommand(str, conn);         int i = 10;         try                 catch (exception ex)        

response.write(i.tostring());

如果執行成功的話 返回的值為-1,如果資料表已經存在的話返回異常:資料庫中已存在名為 'aaa' 的物件。

from:msdn

備註 您可以使用executenonquery來執行目錄操作(例如查詢資料庫的結構或建立諸如表等的資料庫物件),或通過執行 update、insert 或 delete 語句,在不使用

dataset

的情況下更改資料庫中的資料。

雖然executenonquery不返回任何行,但對映到引數的任何輸出引數或返回值都會用資料進行填充。

對於 update、insert 和 delete 語句,返回值為該命令所影響的行數。對於所有其他型別的語句,返回值為 -1。如果發生回滾,返回值也為 -1。

ado.net 資料命令使您能夠直接對資料庫或其他資料來源執行命令,而不需要資料集或資料介面卡。有關更多資訊,請參見 visual studio 中的 datacommand 物件介紹

。1. 可針對資料庫執行的某些型別的資料命令除了返回乙個指出命令成功的值以外不返回任何值。這些命令型別包括:

必須使用資料庫命令執行 ddl 操作;沒有其他方法可以在 ado.net 中執行這些任務。

如果正在使用資料集,則不需要使用單獨的資料命令執行資料庫更新。而是使用資料介面卡更新資料庫。有關更多資訊,請參見 visual studio .net 中的資料集更新。但是,如果使用的不是資料集,則可以直接向資料庫傳送更新命令。有關資料集相對於資料命令的優點的更多資訊,請參見資料訪問策略建議。

對於這兩種型別的命令,命令都返回乙個整數指示操作的成功與否。返回值因是要更新記錄還是發出 ddl 命令而異:

在兩種情況下,如果操作失敗,命令都返回零。

注意 executenonquery() 返回值 問題

前些日子作一些資料專案的時候 在ado.net 中處理 executenonquery()方法時,總是通過判斷其返回值是否大於0來判斷操作時候成功 。但是實際上並不是這樣的,好在處理的資料操作多時 修改, 插入, 刪除,否則的話問題就有點打了,都是些基礎的知識,但是很重要個人覺得有必要記下來。

executenonquery()方法主要使用者更新資料,通常它使用update,insert,delete語句來運算元據庫,其方法返回值意義:對於 update,insert,delete 語句 執行成功是返回值為該命令所影響的行數,如果影響的行數為0時返回的值為0,如果資料操作回滾得話返回值為-1,對於這種更新操作 用我們平時所用的是否大於0的判斷操作應該沒有問題而且比較好,但是對於其他的操作如對資料庫結構的操作,如果操作成功時返回的卻是-1,這種情況跟我們平時的思維方式有點差距所以應該好好的注意了,例如對資料庫共新增乙個資料表的create操作,當建立資料表成功時返回-1,如果操作失敗的話(如資料表已經存在)往往會發生異常,所以執行這種操作時最好用try--catch--語句來容錯。

例如用executenonquery()方法執行create和alter操作

sqlcommand comm = new sqlcommand(str, conn);         int i = 10;         try                 catch (exception ex)        

response.write(i.tostring());

如果執行成功的話 返回的值為-1,如果資料表已經存在的話返回異常:資料庫中已存在名為 'aaa' 的物件。

from:msdn

備註 您可以使用executenonquery來執行目錄操作(例如查詢資料庫的結構或建立諸如表等的資料庫物件),或通過執行 update、insert 或 delete 語句,在不使用

dataset

的情況下更改資料庫中的資料。

雖然executenonquery不返回任何行,但對映到引數的任何輸出引數或返回值都會用資料進行填充。

對於 update、insert 和 delete 語句,返回值為該命令所影響的行數。對於所有其他型別的語句,返回值為 -1。如果發生回滾,返回值也為 -1。

ExecuteNonQuery方法教訓

錯誤原因 我在使用executenonquery 方法的時候,用了select,查了資料才發現犯了如此錯誤!基礎問題!publicintexecutenonquery 返回值 受影響的行數。update insert delete 實現 idbcommand.executenonquery 備註 您...

使用ExecuteNonQuery()運算元據

函式executenonquery 可以對資料庫執行更新,插入,刪除操作,並返回操作影響的行數,若執行語句不是sql語句,則返回 1,應用例項如下 配置檔案資訊 程式 如下 using system using system.data using system.configuration using...

ExecuteNonQuery 的注意點

最近忙個專案,在查詢某個表中是否有資料的時候,我用了executenonquery 並通過判斷值是否大於0來判斷資料的存在與否。結果與我所設想的很不一致,除錯時才發現,其執行後返回的結果是 1,對此我很是不理解,回頭查了下資料,如下顯示 sqlcommand.executenonquery 方法對連...