注意 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sendfile函数「建议收藏」

    sendfile函数「建议收藏」sendfile函数在两个文件描述符之间直接传递数据(完全在内核中操作),从而避免了内核缓冲区和用户缓冲区之间的数据拷贝,效率很高,这被称为零拷贝。sendfile函数的定义如下:#includessize_tsendfile(intout_fd,intin_fd,off_t*offset,size_tcount);in_fd参数是待读出内容的文件

    2022年5月3日
    68
  • JDBC API 4.2(十):DatabaseMetaData 接口源码分析「建议收藏」

    JDBC API 4.2(十):DatabaseMetaData 接口源码分析「建议收藏」1、简介DatabaseMetaData接口提供了获取数据库元数据的方法,例如数据库名称,数据库版本,驱动程序名称,表总数,视图总数等。该接口由驱动程序供应商实现,以使用户了解数据库管理系统(DBMS)的功能以及与之结合使用的基于JDBC技术的驱动程序。不同的DBMS通常支持不同的功能,以不同的方式实现功能以及使用不同的数据类型。另外,驱动程序可以在DBMS提供的功能之上实现功能。该接…

    2022年10月29日
    0
  • fedora14下载_乡村爱情12部下载

    fedora14下载_乡村爱情12部下载Fedora12正式版已于2009年11月18日正式发布,下面提供官方网站下载地址:下载主页:http://fedoraproject.org/zh_CN/get-fedora种子:http://torrent.fedoraproject.org/镜像:http://mirrors.fedoraproject.org/publiclist/Fedora/12/ …

    2022年9月20日
    0
  • Linux load average负载量分析与解决思路

    Linux load average负载量分析与解决思路top命令中loadaverage显示的是最近1分钟、5分钟和15分钟的系统平均负载。系统平均负载表示  系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程树。如果一个进程满足以下条件则其就会位于运行队列中:  -它没有在等待I/O操作的结果  -它没有主动进入等待状态(也就是没有调用’wait’)  -没有被停止

    2022年7月17日
    13
  • ps如何批量处理图片大小和尺寸_ps怎样批量处理图片大小

    ps如何批量处理图片大小和尺寸_ps怎样批量处理图片大小喜爱摄影的朋友可能都有这样的体会,相机里面存了大量的图片,一般都是2048×1536或者更大像素的照片,每张都有1M以上,如果设置的清晰度高,则照片就更大,这样的图片是无法上传到博客中的(博

    2022年8月3日
    2
  • ap调试教程_超声波发生器说明书

    ap调试教程_超声波发生器说明书前言:在传统APA自动泊车系统中,通常使用超声波雷达进行车辆前后辈避障以及侧向车位探测。目前市场上大多数带有自动泊车功能的车辆均配有12个超声波雷达,本文从硬件安装及超声波雷达调试标定两方面对自动泊车超声波雷达的安装调试进行说明1硬件安装自动泊车配置的超声波雷达一般为两组12个雷达探头。单组6个雷达探头串联,其中第1和第6号雷达为长距LRU雷达,2-4号为短距SRU避障雷达。超声探头均…

    2022年9月11日
    0

发表回复

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

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