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. C# Asp.net中xml串与对象互相转换

    public class XmlUtil { #region 反序列化 /// <summary> /// 将XML字符串反序列化为对象 /// </summary> /// ...

  2. VS2013 opencv配置

    有三个地方需要配置,在配置之前首先要将platform配置好,下面的例子是x64 Release的“ 然后需要将include.lib的路径配置好 然后将dll拷贝至编译生成的Release文件夹中即 ...

  3. 【JMeter】【性能测试】参数化,内存溢出问题

    这一篇文章随便说一下JMETER的脚本参数化 1:Parameters的两种参数化方法 1.1:函数助手参数化 首先准备你的参数数据.我在bin/data中新建了一个dat文件,记事本另存为修改编码为 ...

  4. centos安装Django之四:安装Django

    前面我们学会了centos安装Django之一:安装openssl和centos安装Django之二:pip3安装,centos安装Django之三:安装python,现在我们就可以安装Django了 ...

  5. Python3学习之路~4.1 列表生成式、生成器

    1 列表生成式 我现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,怎么实现?你可能会想到2种方式 a=[0,1,2,3,4,5,6,7,8 ...

  6. pattern.define注意事项

    1.PAT:最好不要所有的关键字后面都用|,导致整条pattern变成无限统配.

  7. abap method中的异常处理

    1: 抛出异常 2: 处理异常

  8. vi相关

    vi有三种模式: 命令模式:键盘的任意输入都当成“编辑命令”: 输入模式:键盘的任意输入都当成文本内容: 末行模式:键盘的任意输入都当成“文本管理命令” 命令模式(刚打开)==>(i,a,o)输 ...

  9. JS通过类名判断是否都必填

    //判断class='required' 是否都必填 function required() { var flag = true; $(".required").each(func ...

  10. Http 服务 简单示例

    现在我们实现一个GO的Web http服务 只做演示,没有实际功能 但是能看出Go做Http服务的简洁 **************************************** package ...