c#: ExecuteNonQuery() returns -1

亡梦爱人 提交于 2019-12-01 15:27:45
kol

If you use this method to call a store procedure that perform UPDATE/INSERT in a table the method return -1 if the stored procudere has the SET NOCOUNT at ON value.

--source

Michael Gattuso

From Microsoft:

For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command. When a trigger exists on a table being inserted or updated, the return value includes the number of rows affected by both the insert or update operation and the number of rows affected by the trigger or triggers. For all other types of statements, the return value is -1. If a rollback occurs, the return value is also -1.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx

You are probably getting -1 because you are using a stored procedure and not a direct table change

What value are you returning from your stored procedure? Can you show the code for your stored procedure. You probably need to edit your stored procedure to return the required value, OR, your stored procedure is returning a -1 either specifically or the variable that the stored procedure returns has -1 as its value.

Rubysmita

Get the row count output from the stored procedure something like using @rowCount=@@Rowcount. In the DAL, use dbManager.AddOutParameter("RowCount", DbType.Int32, rowCount); Then in the final rows you will get as (int)dbManager.GetParameterValue("RowCount").

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!