• Asp.net中利用ExecuteNonQuery()执行存储过程返回1解决方案


    Asp.net中利用ExecuteNonQuery()执行存储过程返回-1解决方案

    2009-08-22 14:06 by chenkai, 544 阅读, 1 评论, 收藏, 编辑 Asp.net中利用ExecuteNonQuery()方法执行sql语句,并返回影响行数,注意sql语句针对的是增删改三个操作,返回影响行数总是-1:在MSDN上这样解释如果不是同一类型(增删改)的sql语句 执行操作返回-1.
    当前存储过程如下:

    复制代码
     1--创建个人插入Proc
     2--分开参数实现
     3create proc AddPersion_Proc
     4@name varchar(80),
     5@password varchar(20),
     6@realname varchar(20),
     7@contractadd varchar(100),
     8@phonenum varchar(24),
     9@email varchar(50),
    10@utypeid varchar(50)--用户类型
    11as
    12
    13set nocount on--不返回影响行数
    14
    15declare @gettypeid int
    16
    17select @gettypeid=id from usertype where utype=@utypeid
    18if(@utypeid='个人用户')
    19insert into userinfor (typeid,username,password,realname,email,address,telenum)
    20values(@gettypeid,@name,@password,@realname,@email,@contractadd,@phonenum)
    21
    22--End AddPersion_proc
    复制代码

    执行结果返回到程序总是显示为-1,虽然返回为-1但数据仍然能够插入,数据库中添加一条记录

    其 实问题关键是在这:数据库能够在为我们执行增删改操作并返回影响行数前提是: 默认的 Set Nocount off 是开启的,上面纯粹出于个人习惯直接写了 set nocount on 这样导致无法返回整个存储过程执行后的结果,直接删除set nocount on使用默认情况的下设置,即能返回显示影响的行数.

  • 相关阅读:
    Centos7安装docker-ce
    postgresql-11主从复制(流复制)部署
    centos7安装postgreSql11
    CentOS7下安装PostgreSQL12
    postgres生成uuid
    软工第一次团队展示
    软工第一次结对编程作业
    软工第一次个人编程作业
    课程总结
    团队作业
  • 原文地址:https://www.cnblogs.com/soundcode/p/2715153.html
Copyright © 2020-2023  润新知