对Command的拓展延伸

执行SQL语句。

Command 对象需要取得将要执行的SQL语句,通过调用该类的多种方法,向数据库提交SQL语句。

ExecuteNonQuery(),ExecuteReader(),ExecuteScalar() 三种方法。

1,ExecuteNonQuery()方法

通常使用它来执行Update、Insert和Delete语句。

该方法返回值意义如下:

  对于Update、Insert和Delete语句,返回值为该命令所影响的行数。

  对于所有其他类型的语句,返回值为-1。

例1,

string Con = "server=.;database=ChenX;uid=sa;pwd=";
SqlConnection coon = new SqlConnection(Con);
coon.Open();
SqlCommand cmd = new SqlCommand();//创建一个SqlCommand对象
cmd.Connection = coon;//设置Connection属性
cmd.CommandText = "select * from Person where HasNumChild=1";//设置CommandText 的SQL语句 ,(1)查询
cmd.CommandText = "Update Person set HasNumChild=3 Where HasNumChild=1";// (2)更改 HasNumChild 字段
cmd.CommandType = CommandType.Text; //设置 CommandType 属性为Text,使其只执行SQL语句文本形式。
label2.Text = (cmd.ExecuteNonQuery()).ToString();

运行结果:选择执行(1)的时候  返回结果为  -1;

执行(2)的时候  返回结果为,2;即为该命令所影响的行数

2,ExecuteReader() 方法

执行SQL语句,生成一个包含数据的SqlDataReader 对象的实例。

例2,

...//同上

cmd.CommandText = "select * from Person ";
cmd.CommandType = CommandType.Text; //设置 CommandType 属性为Text,使其只执行SQL语句文本形式。
SqlDataReader sdr = cmd.ExecuteReader();//使用ExecuteReader方法实例化一个SqlDataReader对象
while (sdr.Read())
{ //Read() 读取 SqlDataReader
listView1.Items.Add(sdr[2].ToString());
//sdr[2]中的 2 代表读取所要查询表的第3列,从0开始为第1列,依次类推 ,sdr["Age"]这种是返回该表Age字段的那一列结果。
}

注:  .Read()的每次调用都会从结果集中返回一行

运行结果: 显示 Person表的所有第三列内容。

顺便大略讲一下 DataReader 对象。  在上一节,将DataReader比作 水直接到用户家里面使用的管子,那么它读取数据的速度快。

DataReader 对象是数据读取器对象,提供只读向前的游标。比如,应用程序需要每次从数据库中取出最新数据,或者只是需要快速读取数据,并不需要修改数据,那可以用它。

有时候可以用它的HasRows属性来判断所查询的表是否有值。

...//同上

SqlDataReader sdr = cmd.ExecuteReader();

sdr.Read();

if(sdr.HasRows){  MessageBox.show("数据表有值");

}

else

{MessageBox.show("数据表没有值");

}...

注:在使用SqlDataReader 对象之前,必须打开数据库连接。如果针对一个SqlConnection,创建多个SqlDataReader 对象,则创建下一个SqlDataReader对象之前,要通过Close方法关闭一个SqlDataReader 对象。

3,ExecuteScalar() 方法

在上一节有一个相关的例题,它的主要返回结果集的第一行第一列内容。

他一般与聚合函数一起使用。

聚合函数 说明                           
AVG(expr) 列平均值,该列只包含数字数据
COUNT(expr)、COUNT(*) 列值的计数(列名为指定expr)、表中所有行数
MAX(expr) 列值最大值

MIN( expr)

列值最小值
SUM(expr) 列值的合计

其他的以后再补充说明。

ADO.NET(二)的更多相关文章

  1. ADO.NET (二)—— ADO和ADO .NET对照

     ADO.NET (二)-- ADO和ADO .NET对照       我们知道ADO.NET的两大核心组件各自是Data Provider和DataSet.假设说 DataSet是ADO.NET的心 ...

  2. 我与ADO.NET二三事(2)

    继上篇开始,这里主要再次精简.因为大家已经熟悉了主要思想以及它的工作方式.那么这里提供的案例改动会很大.上篇的DatabaseCommand***均是为了大家能够轻松的理解所临时编写的.这次提供的接口 ...

  3. 我与ADO.NET二三事

      天气渐冷,闲来无事就把业余时间自己使用的数据访问库凉一凉.这个库本人自己使用了2年多,主要用于个人学习时需要操作数据库时使用,非组织和商业性质的使用.记得上学的时候,在网络上看到SqlServer ...

  4. ADO.NET 二(Connection)

    C# 语言中 Connection 类是 ADO.NET 组件连接数据库时第一个要使用的类,也是通过编程访问数据库的第一步. 接下来了解一下 Connection 类中的常用属性和方法,以及如何连接 ...

  5. 使用C#进行数据库增删改查ADO.NET(二)

    这节接着讲用C#进行数据库CRUD,高级部分.  事务: 事务是执行一批sql语句,如果中途失败,全部回滚,数据不会受影响,中途没有出错则会提交事务,真正对数据进行修改.C#提供了SqlTransac ...

  6. VC操作ADO的基本策略

    一.ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口.ADO 使您能够编写应用程序以通过 OLE. DB 提供者访问和操作数据 ...

  7. ADO.NET学习小结【1】正在更新...

    小弟正在学习ADO.net有误的地方还请大大们批评指出,小弟在此谢过了 一.ADO.net简述: 以前我们写程序尤其是写和数据库有关的应用程序时,你我都得要了解Microsoft ADO COM对象才 ...

  8. ADO.NET学习(一)

    一.ADO.NET简介 ADO.NET可以看作是C#语言访问数据库的一种方式.编程语言编写的程序需要数据库的支持,那么怎样才能让他们建立连接呢?当然是ADO.NET 二.ADO.NET 整体流程 1) ...

  9. ADO.NET(一)

    最近在公司有用到了ADO.NET技术,由浅入深的复习一下. 如图所示,水源就像一个水库,进水龙头就像Connection,同理,抽水机:Command,输水管:DataAdapter 或 DataRe ...

随机推荐

  1. 16.如何查找所需的maven的依赖

    http://mvnrepository.com/ 1.先打开上面的网址 搜索需要的依赖,点进去 2.选择需要的版本 3.红框中的就是依赖的地址 此外也有其他自动化构建工具所需要的地址

  2. 实现ls

    一.任务详情 参考伪代码实现ls的功能,提交代码的编译,运行结果截图,码云代码链接 打开目录文件 针对目录文件 读取目录条目 显示文件名 关闭文件目录文件 二.伪代码 opendir while(re ...

  3. POI2014 FAR-FarmCraft 树形DP+贪心

    题目链接 https://www.luogu.org/problem/P3574 题意 翻译其实已经很明确了 分析 这题一眼就是贪心啊,但贪心的方法要思索一下,首先是考虑先走时间多的子树,但不太现实, ...

  4. 解读windows认证

    0x00 前言 dll劫持的近期忙,没时间写,先给大家写个windows认证的水文. 0x01 windows认证协议 windows上的认证大致分为本地认证,ntlm协议,和Kerberos协议. ...

  5. bs4使用

    目录 安装使用 遍历文档树 查找文档树 安装使用 # 安装 pip3 install beautifulsoup4 from bs4 import BeautifulSoup soup=Beautif ...

  6. CentOS7部署指南

    1.rpm包安装---下载安装文件 wget https://pkg.jenkins.io/redhat/jenkins-2.156-1.1.noarch.rpm rpm -ivh jenkins-2 ...

  7. Vertica的这些事(八)——-Vertica-管理

    1.版本信息 dbadmin=> SELECT version(); version ------------------------------------ Vertica Analytic ...

  8. FastJson反序列化和构造函数之间的一点小秘密

    各位看官大家下午好,FastJson想必大家都很熟悉了,很常见的Json序列化工具.今天在下要和大家分享一波FastJson反序列化和构造函数之间的一点小秘密. 下面先进入大家都深恶痛绝的做题环节.哈 ...

  9. 【Linux】Apache服务配置

    一. URL 统一资源定位符 http://www.sina.com.cn:80/admin/index.html 二. 环境安装 LAMP 源码包编译安装 版本可以自定义 生产环境 安全 稳定 开发 ...

  10. wireshark抓包实战(一),抓包原理

    一.什么样的"包"能被wireshark抓住呢? 1.本机 即直接抓取进出本机网卡的流量包.这种情况下,wireshark会绑定本机的一块网卡. 2.集线器 用于抓取流量泛洪,冲突 ...