C# 存储过程返回影响行数

存储过程中完成更新操作后,使用@@rowcount返回影响行数。如果有多条语句,可定义变量保存影响行数。示例如下

ALTER PROCEDURE [dbo].[P_CSM_UpdateHandleResultEmpName]
 @HandleIndex int=-1
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

   update a set a.FromEmpName=b.empname from HandleResult a left join users b on a.FromUserName=b.openid
    where a.HandleIndex>@HandleIndex and a.FromEmpName is null and b.empname is not null
   select @@rowcount  --这里返回影响行数
END

然后C# 代码中,使用SqlCommand.ExecuteScalar()来执行该存储过程,就能获取@@rowcount,也就是影响行数

代码如下:

        private int UpdateHandleResultEmpName()
        {
            SqlConnection con = new SqlConnection("你的数据库连接字符串");
            SqlCommand com = con.CreateCommand();
            com.CommandType = CommandType.StoredProcedure;
            com.CommandText = "P_CSM_UpdateHandleResultEmpName"; //存储过程名称
            con.Open();
            int rowcount = Convert.ToInt32(com.ExecuteScalar());
            con.Close();
            return rowcount;
        }

C# 存储过程返回影响行数

时间: 2024-07-31 06:44:36

C# 存储过程返回影响行数的相关文章

Oracle sql%rowcount 返回影响行数;sql server @@RowCount返回影响行数

sql server中,返回影响行数是:If @@RowCount<1 Oracle中,返回影响行数是:If sql%rowcount<1 例: sqlserver: create procedure Proc_test @Stat int=0, @MsgId varchar(50)='', AS BEGIN Update T_Mt Set Stat=@Stat,OStat=@Stat,RptTime=Getdate() Where MsgId=@MsgId If @@RowCount<

sql%rowcount 返回影响行数

oracle中,返回影响行数是:If sql%rowcount 举例: update ut_calenderStatus t set t.calenderstatus=pi_flg, t.m=pi_M, t.n=pi_N, t.prolong=pi_prolong where t.fundcode=pi_fundcode; if sql%rowcount=0 then insert into ut_calenderStatus values (pi_fundcode,pi_flg,pi_M,pi

我纠结的sql返回受影响行数与判断是否成功的问题

比如:deleteSQLWhere="delete TableA where ID in(1,2,3,4,5)"; try { int i = sqlHelper.ExecuteNonQuery(CommandType.Text, deleteSQLWhere); if (i > 0) { return true; } } catch (Exception ex) { LogMsg.WriteLog(ex.ToString()); return false; } return f

[小问题笔记(八)] 常用SQL(读字段名,改字段名,打印影响行数,添加默认值,查找存储过程等)

读取所有字段,自然排序 declare @fields varchar(max) Select @fields=ISNULL(@fields,'')++name+',' from syscolumns Where ID=OBJECT_ID('contact') order by colorder print @fields 读取所有字段,名称排序 declare @fields varchar(max) Select @fields=ISNULL(@fields,'')++name+',' fr

CI中获取读操作的结果集行数+获取写操作的影响行数

本质:读操作,用mysql_num_rows函数,写操作用mysql_affected_rows函数 mysql_num_rows() 返回结果集中行的数目.此命令仅对 SELECT 语句有效.要取得被 INSERT,UPDATE 或者 DELETE 查询所影响到的行的数目,用 mysql_affected_rows(). CI中的方法: 读操作,获取行数: $query->num_rows() 该函数将会返回当前请求的行数.在本例子中, $query 表示当前 SQL 所产生的请求结果对象:

mysql执行update语句受影响行数是0

mybatis连接mysql数据库,发现同一个update执行多次,返回的int值都是1. 我记得同样的update再次执行时 受影响行数是0. 后来发现,我之前一直用的SQLyog是这样子的. 原来,不同的连接客户端执行update给出的受影响行数不同. 对于再次返回0,网上的资料是,MySQL 为了提升性能,当它发现要执行的修改内容与数据库中完全一致时,对它而言,此时修改是毫无意义的,反而会消耗一次执行修改的性能,于是它就不再做修改,因而受影响行数就是0. 至于mybatis,网上有说myb

PA模块报错-实际返回的行数超出请求的行数(分析标准FORM报错解决思路)

录入预算报错时报错: 分析:这个错误是select into 语句返回多行的结果,但具体在哪? 两种方法查找,trace 或者debug 1.trace 启用调试 获取trace文件 -bash-3.2$ tkprof ERPDEV_ora_7532_RICK.trc $HOME/7532_rick.fchela.txt TKPROF: Release 11.2.0.2.0 - Development on Mon Jul 28 11:21:34 2014 Copyright (c) 1982,

mysql sql获取上条插入id,update影响行数

1.获取上条插入数据 LAST_INSERT_ID(); 2.获取update影响行数. ROW_COUNT(); mysql> UPDATE t -> SET address = 'beijing111' -> WHERE id = 1 -> AND NAME = 'yubowei'; Query OK, 1 row affected (0.30 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> mysql> SEL

db2,oracle,mysql ,sqlserver限制返回的行数

不同数据库限制返回的行数的关键字如下: ①db2 select * from table fetch first 10 rows only; ②oracle select * from table where rownum<=10; ③mysql select * from table limit 10; ④sqlServer select top 10 * from table; 原文地址:https://www.cnblogs.com/baxianhua/p/9105372.html