(转) c# ExecuteNonQuery() 返回值 -1

这是之前我遇到问题,在网上找解决方法时找到的,当时复制到txt文档了,今天整理笔记又看到了,贴出来,便于以后查阅。原文的作者没记住~~

查询某个表中是否有数据的时候,如果用ExecuteNonQuery() 来判断值是否大于0来判断数据的存在与否,是不正确的。

SqlCommand.ExecuteNonQuery 方法对连接执行 Transact-SQL 语句并返回受影响的行数。

备注:可以使用 ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句,在不使用 DataSet 的情况下更改数据库中的数据。

虽然 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都会用数据进行填充。对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1

也就是说,如果不是update,insert,delete操作数据记录的语句,返回值都是-1,所以, select语句不适合ExecuteNonQuery()方法

时间: 2024-12-24 07:39:21

(转) c# ExecuteNonQuery() 返回值 -1的相关文章

ExecuteNonQuery()返回值

查询某个表中是否有数据的时候,我用了ExecuteNonQuery(),并通过判断值是否大于0来判断数据的存在与否.结果与我所设想的很不一致,调试时才发现,其执行后返回的结果是-1,对此我很是不理解,回头查了下资料,如下显示:SqlCommand.ExecuteNonQuery 方法对连接执行 Transact-SQL 语句并返回受影响的行数.备注:可以使用 ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE.INSERT

ExecuteNonQuery()返回值注意点

查询某个表中是否有数据的时候,我用了ExecuteNonQuery(),并通过判断值是否大于0来判断数据的存在与否.结果与我所设想的很不一致,调试时才发现,其执行后返回的结果是-1,对此我很是不理解,回头查了下资料,如下显示: SqlCommand.ExecuteNonQuery 方法对连接执行 Transact-SQL 语句并返回受影响的行数. 备注:可以使用 ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE.INSER

ADO.NET快速入门——使用Command执行增删改操作,通过判断ExecuteNonQuery()返回值检查是否操作成功

相关知识: ExecuteNonQuery()方法:执行CommandText属性所制定的操作,返回受影响的记录条数.该方法一般用来执行SQL中的UPDATE.INSERT和DELETE等操作 对于UPDATE.INSERT和DELETE语句,执行成功返回值为该命令所影响的行数,如果影响行数为0时返回值为0,如果数据操作回滚则返回值为-1.但是对于其他的操作比如对数据库结构的操作,如果操作成功时返回的确是-1,例如给数据库添加一个数据表CREATE操作,当表创建成功返回-1,如果操作失败,则发生

ASP.NET 成功执行Update 的 ExecuteNonQuery() 返回值大于0,但是查看数据库却没有改变

1 //真实姓名保存 2 $("#TrueNameSaveBtn").click(function () { 3 if ($("#TrueNameSaveText").val() != "") { 4 //上传数据 5 $.post("/Home/UpdateUserInfo", { "item": "TrueName", "data": $("#TrueN

MSSQL - 存储过程Return返回值

1.存储过程中不使用外部参数. 存储过程: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: HF_Ultrastrong -- Create date: 2015年7月19日22:09:24 -- Description: 判断是否有数据,并使用Return返回值 -- =============================

利用SQLServer查询分析器获取存储过程的返回值,检查测试存储过程

1.存储过程没有返回值的情况(即存储过程语句中没有return之类的语句)用方法 int count = ExecuteNonQuery(..)执行存储过程其返回值只有两种情况(1)如果通过查询分析器执行该存储过程,在显示栏中如果有影响的行数,则影响几行count就是几(2)如果通过查询分析器执行该存储过程,在显示栏中如果显示'命令已成功完成.'则count = -1;在显示栏中如果有查询结果,则count = -1总结:A.ExecuteNonQuery()该方法只返回影响的行数,如果没有影响

C#获取存储过程返回值和输出参数值的方法

//转自网络,先留个底 1.获取Return返回值 //存储过程 //Create PROCEDURE MYSQL // @a int, // @b int //AS // return @a + @b //GO SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString()); conn.Open(); SqlCommand MyCom

将存储过程的返回值赋给变量

1.OUPUT参数返回值 复制代码代码如下: CREATE PROCEDURE [dbo].[nb_order_insert](@o_buyerid int ,@o_id bigint OUTPUT)ASBEGINSET NOCOUNT ON;BEGININSERT INTO [Order](o_buyerid )VALUES (@o_buyerid )SET @o_id = @@IDENTITYENDEND 存储过程中获得方法: 复制代码代码如下: DECLARE @o_buyerid int

支持多返回值存储过程的SqlHelper

public readonly string connStr = ConfigurationManager.ConnectionStrings["sql"].ConnectionString; /// <summary> /// 执行非插叙语句,返回受影响行数 /// </summary> /// <param name="cmdText">Sql语句</param> /// <param name="