注意 ExecuteNonQuery() 返回值 问题「建议收藏」

注意 ExecuteNonQuery() 返回值 问题「建议收藏」前些日子作一些数据项目的时候在ADO.NET 中处理ExecuteNonQuery()方法时,总是通过判断其返回值是否大于0来判断操作时候成功。但是实际上并不是这样的,好在处理的数据操作多时修改,插入,删除,否则的话问题就有点打了,都是些基础的知识,但是很重要个人觉得有必要记下来。    ExecuteNonQuery()方法主要用户更新数据,通常它使用Update,In

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前些日子作一些数据项目的时候 在ADO.NET 中处理 ExecuteNonQuery()方法时,总是通过判断其返回值是否大于0来判断操作时候成功 。但是实际上并不是这样的,好在处理的数据操作多时 修改, 插入, 删除,否则的话问题就有点打了,都是些基础的知识,但是很重要个人觉得有必要记下来。

     ExecuteNonQuery()方法主要用户更新数据,通常它使用Update,Insert,Delete语句来操作数据库,其方法返回值意义:对于 Update,Insert,Delete  语句 执行成功是返回值为该命令所影响的行数,如果影响的行数为0时返回的值为0,如果数据操作回滚得话返回值为-1,对于这种更新操作 用我们平时所用的是否大于0的判断操作应该没有问题而且比较好,但是对于其他的操作如对数据库结构的操作,如果操作成功时返回的却是-1,这种情况跟我们平时的思维方式有点差距所以应该好好的注意了,例如对数据库共添加一个数据表的Create操作,当创建数据表成功时返回-1,如果操作失败的话(如数据表已经存在)往往会发生异常,所以执行这种操作时最好用try–catch–语句来容错。

  例如用ExecuteNonQuery()方法执行create操作

   

    SqlConnection conn = new SqlConnection(“Data Source=.;Initial Catalog=PSDB;Integrated Security=SSPI”);
        
   string str = “CREATE TABLE aaa ( ” +
  “[ID] [int] IDENTITY (1, 1) NOT NULL , ” +
  “[BasicID] [int] NULL ,” +
  “[AdoptedName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,” +
  “[AdoptedSex] [char] (2) COLLATE Chinese_PRC_CI_AS NULL ,” +
  “[AdoptBirthday] [smalldatetime] NULL ,” +
  “[AdoptedType] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,” +
  “[ApprTime] [smalldatetime] NULL ,” +
  “[Remark] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL ” +
“) ON [PRIMARY]   “;     

  SqlCommand comm = new SqlCommand(str, conn);
        int i = 10;
        try
        {

            conn.Open();
            i = comm.ExecuteNonQuery();
            conn.Close();
        }
        catch (Exception ex)
        {

            Response.Write(ex.Message);
        }

        Response.Write(i.ToString());

       如果执行成功的话 返回的值为-1,如果数据表已经存在的话返回异常:数据库中已存在名为 ‘aaa’ 的对象。

转自:http://blog.csdn.net/zhvsby/article/details/6000310

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194738.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • snmp协议的trap操作采用基于_maven批量导入jar包

    snmp协议的trap操作采用基于_maven批量导入jar包snmptrap与snmpSNMP简单概述1.1、什么是SnmpSNMP是英文”SimpleNetworkManagementProtocol”的缩写,中文意思是”简单网络管理协议”。SNMP是一种简单网络管理协议,它属于TCP/IP五层协议中的应用层协议,用于网络管理的协议。SNMP主要用于网络设备的管理。由于SNMP协议简单可靠,受到了众多厂商的欢迎,成为了目前最为广泛的网管协议。SNMP协议主要由两大部分构成:SNMP管理站和SNMP代理。SNMP管理站是一个中心节点,负责收集维护

    2022年8月20日
    8
  • Django(42)DRF安装与使用[通俗易懂]

    Django(42)DRF安装与使用[通俗易懂]DRF介绍DRF是DjangoRestFramework单词的简写,是在Django框架中实现RestfulAPI的一个插件,使用他可以非常方便的实现接口数据的返回。Django中也可以使用J

    2022年7月29日
    7
  • P2P流媒体(p2p技术是谁发明的)

       上研都快一年啦,在呢年里说来惭愧,还没找好自己真正想研究的领域,我是比较喜欢网络方面的应用开发,但是网络也有好多方向啦,前段时间对搜索很感兴趣,还很冲动想专一下这方面,不过不好的地方是跟导师研究的方向没有大多交集,除非是搞并行算法方面,其它也可以…      前几天无意间看到peercast这个基于P2P的网络收音机,突然间激发了我心情的一团火(就好似酱爆甘,响呢个momen

    2022年4月16日
    62
  • Centos7 网络配置 设置静态Ip

    Centos7 网络配置 设置静态Ip服务器Centos7系统装好后,我需要上网功能,这样客户端才可以连接服务端,那么那些命令可以配置网络登录系统配置动态IP上网输入命令:ls/etc/sysconfig/network-scripts/查看网卡列表,一般默认第一个就是你电脑的网卡,ifconfig-enp6s0就是我的有线网卡。输入命令cat/etc/sysconfig/network-scripts/ifcfg-e

    2022年5月3日
    79
  • UBUNTU 下如何升级 gcc, g++

    UBUNTU 下如何升级 gcc, g++

    2021年12月3日
    54
  • linux下chmod +x的意思?为什么要进行chmod +x

    linux下chmod +x的意思?为什么要进行chmod +x上周在工作中接触到chmod+x这个命令,如下图:首先对start.sh这个启动文件删除,然后使用rz命令上传了新的start.sh,然后发现还有进行下一步,chmod+xstart.sh这一步是什么意思呢?经过上网查询(说的比较复杂,引申太多)和咨询我们研发(还是研发说的通俗易懂)chmod+x的意思就是给执行权限LINUX下不同的文件类型有不同的颜色,这里…

    2022年7月12日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号