1.SqlCommand.ExecuteNonQuery 方法

对连接执行 Transact-SQL 语句并返回受影响的行数。

语法:public override int ExecuteNonQuery()

返回值:

类型:System.Int32

受影响的行数

注意:

①对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。

如果正在执行插入或更新操作的表上存在触发器,则返回值包括受插入或更新操作影响的行数以及受一个或多个触发器影响的行数。

对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1。

②该语句不适用select语句。

在查询表中是否有(某条)数据的时候,一定不能用select sql语句+ cmd.ExecuteNonQuery(),通过判断返回值是否大于0来判断。

解决方案:

Ⅰ.SqlCeCommand.ExecuteScalar 方法 ( + 聚合查询)

执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行。 例如一个聚合值。

cmd.CommandText = "select count(*) from users where id = 10000;"  例如一个聚合值。

int count = (int)cmd.ExecuteScalar() ;

Ⅱ.用ExcuteReader()方法返回一个reader

if(reader.Read() == false) { ...}

2.SqlCommand.ExecuteScalar 方法

执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。

语法:public override Object ExecuteScalar()

返回值

类型:System.Object

结果集中第一行的第一列;如果结果集为空,则为空引用(在 Visual Basic 中为 Nothing)。

注意:

使用ExecuteScalar方法从数据库中检索单个值(例如一个聚合值)。与使用ExecuteReader方法,然后使用 SqlDataReader 返回的数据执行生成单个值所需的操作相比,此操作需要的代码较少。

典型的ExecuteScalar查询可以采用类似下面C#示例的格式:

cmd.CommandText="SELECT COUNT(*) FROM dbo.region";

Int32 count=(Int32)cmd.ExecuteScalar();

 

关于SqlCommand对象的2个方法:ExecuteNonQuery 方法和ExecuteScalar方法的更多相关文章

  1. 问题:ExecuteNonQuery 与 ExecuteScalar 结果: ExecuteNonQuery方法和ExecuteScalar方法的区别

    ExecuteNonQuery方法和ExecuteScalar方法的区别 ----ExecuteNonQuery():执行命令对象的SQL语句,返回一个int类型变量,如果SQL语句是对数据库的记录进 ...

  2. 记录一个python公式罗列的方法 join()方法和map()方法的妙用

    题干: 怎样将一个列表中的元素读出,并列出计算式子 比如:[,,,] 输出:+++ = 列表中的元素个数不定 小白和大神的方法: #小白的 numlist=[,,,] sum1='' cal='+' ...

  3. Java 如何重写对象的 equals 方法和 hashCode 方法

    前言:Java 对象如果要比较是否相等,则需要重写 equals 方法,同时重写 hashCode 方法,而且 hashCode 方法里面使用质数 31.接下来看看各种为什么. 一.需求: 对比两个对 ...

  4. Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别? 线程的sleep()方法和yield()方法有什么区别?

    Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别? sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间 ...

  5. java 集合 HashSet 实现随机双色球 HashSet addAll() 实现去重后合并 HashSet对象去重 复写 HashCode()方法和equals方法 ArrayList去重

    package com.swift.lianxi; import java.util.HashSet; import java.util.Random; /*训练知识点:HashSet 训练描述 双色 ...

  6. Hibernate中evict方法和clear方法说明

    Hibernate中evict方法和clear方法说明 先创建一个对象,然后调用session.save方法,然后调用evict方法把该对象清除出缓存,最后提交事务.结果报错: Exception i ...

  7. Android HTTP实例 使用GET方法和POST方法发送请求

    Android HTTP实例 使用GET方法和POST方法发送请求 Web程序:使用GET和POST方法发送请求 首先利用MyEclispe+Tomcat写好一个Web程序,实现的功能就是提交用户信息 ...

  8. wait方法和sleep方法的区别

    一.概念.原理.区别 Java中的多线程是一种抢占式的机制而不是分时机制.线程主要有以下几种状态:可运行,运行,阻塞,死亡.抢占式机制指的是有多个线程处于可运行状态,但是只有一个线程在运行.      ...

  9. OC类的本质,深入探讨,load方法和initialize方法

    1:类的本质:类也是一种类,可以叫做类类,类对象,类类型: 2:类和对象在内存中分配问题(注意区分类的对象和类对象的概念) 类对象在内存中只有一份,且只加载一次,类对象中存放了类中定义的方法: 而成员 ...

随机推荐

  1. 拦截器的作用之session认证登录和资源拦截

    背景: 在项目中我使用了自定义的Filter 这时候过滤了很多路径,当然对静态资源我是直接放过去的,但是,还是出现了静态资源没办法访问到springboot默认的文件夹中得文件.另外,经常需要判断当前 ...

  2. vue获取地址栏传过来的参数VS原生js获取地址栏的参数

    Vue的方式 Vue的 query方式 ①this.$route.query.companyId ( companyId 为参数的名称 是$route 不是 $router) Vue的 params方 ...

  3. js阻止默认事件,如a标签跳转和事件冒泡

    禁止a标签点击跳转 <a href="http://baidu.com" onclick="return false">点我啊</a> ...

  4. vue-loader是什么?使用它的用途有哪些?

    vue-loader是解析 .vue 文件的一个加载器,跟 template/js/style转换成 js 模块: 用途:js可以写es6.style样式可以scss或less:template可以加 ...

  5. chkconfig 管理系统服务

    [root@localhost ~]# chkconfig --list # 列出开启或关闭了哪些系统服务 [root@localhost ~]# chkconfig xxx off # 关闭某个系统 ...

  6. linux 查看系统负载:uptime

    uptime命令用于查看系统负载,跟 w 命令的输出内容一致 [root@mysql ~]# uptime :: up days, :, user, load average: 1.12, 0.97, ...

  7. 用laravel dingo/api创建简单的api

    1,修改.env配置文件添加 API_STANDARDS_TREE=vnd API_SUBTYPE=myapp API_PREFIX=api API_DOMAIN=null API_VERSION=v ...

  8. HTN规划 jshop2

    http://www.cs.umd.edu/projects/shop/description.html 在HTN规划,规划体系从世界的初始状态和创建一个计划来执行一系列任务的目的(需要做的事情,抽象 ...

  9. ABPIAbpSession

    AbpSession定义了几个关键属性: UserId:当前用户的Id或空(如果没有当前用户),如果调用需要授权的代码,它就不能为空. TenantId:当前租户的Id或空(如果没有当前租户:尚未登录 ...

  10. 转换区别json

    private Date EndDate ; private Instant xxxxdate; private LocalDateTime localDateTime; public static ...