ExecuteNonQuery() 方法 select 返回-1

在做一個程序的時候用到ExecuteNonQuery()執行 select,結果總是返回-1。
查到下面文章。

最近看到有人問爲什麼SqlCommand.ExecuteNonQuery()執行Select子句後老是返回-1的問題。

以前對這個一直都沒在意,基本上都沒有用其返回值,查了一下MSDN,如下:
SqlCommand.ExecuteNonQuery 方法對連接執行 Transact-SQL 語句並返回受影響的行數。

對連接執行 Transact-SQL 語句並返回受影響的行數。
命名空間:System.Data.SqlClient
程序集:System.Data(在 system.data.dll 中)

備註:

您可以使用 ExecuteNonQuery 來執行目錄操作(例如查詢數據庫的結構或創建諸如表等的數據庫對象),或通過執行 UPDATEINSERTDELETE 語句,在不使用DataSet的情況下更改數據庫中的數據。

雖然 ExecuteNonQuery 不返回任何行,但映射到參數的任何輸出參數或返回值都會用數據進行填充。

對於 UPDATEINSERTDELETE 語句,返回值爲該命令所影響的行數。對於所有其他類型的語句,返回值爲 -1。如果發生回滾,返回值也爲 -1。

下面的示例創建一個SqlCommand,然後使用 ExecuteNonQuery 執行它。給該示例傳遞兩個字符串:一個字符串是 Transact-SQL 語句(如 UPDATEINSERTDELETE),另一個字符串用於連接數據源。

private static void CreateCommand(string queryString,
        string connectionString)
{
        using (SqlConnection connection = new SqlConnection(
                             connectionString))
        {
                SqlCommand command = new SqlCommand(queryString, connection);
                command.Connection.Open();
                command.ExecuteNonQuery();
        }
}

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