对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. 从使用到原理,探究Java线程池

    什么是线程池 当我们需要处理某个任务的时候,可以新创建一个线程,让线程去执行任务.线程池的字面意思就是存放线程的池子,当我们需要处理某个任务的时候,可以从线程池里取出一条线程去执行. 为什么需要线程池 ...

  2. 事务框架之声明事务(自动开启,自动提交,自动回滚)Spring AOP 封装

    利用Spring AOP 封装事务类,自己的在方法前begin 事务,完成后提交事务,有异常回滚事务 比起之前的编程式事务,AOP将事务的开启与提交写在了环绕通知里面,回滚写在异常通知里面,找到指定的 ...

  3. UITextFiled-集合目录

    键盘弹起遮挡输入输入框(UITextFiled或者UITextView)                   对于键盘弹起遮挡输入框的问题以前也想过解决办法比如:监听系统键盘弹出通知.根据每个控件所在 ...

  4. 51单片机内存条(64K)

    51单片机内存条扩展(64K) 设计时间:2015年 实现功能:51单片机SRAM扩展 51单片机64K内存条

  5. SpringMVC(四):数据处理和过滤器

    本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出一遍就懂!b站搜索狂神说或点击下面链接 https://space.bilibili.com/95256449?spm_id_from=33 ...

  6. (29)ASP.NET Core3.1 Swagger(OpenAPI)

    1.什么是Swagger/OpenAPI? Swagger是一个与语言无关的规范,用于描述REST API.因为Swagger项目已捐赠给OpenAPI计划,所以也叫OpenAPI.它允许计算机和人员 ...

  7. 原生js,jquery通过ajax获得后台json数据动态新增页面元素

    一.原生js通过ajax获取json数据 因为IE浏览器对ajax对象的创建和其他浏览器不同,为了兼容全部浏览器,我用下面的代码: function createXMLHttpRequest(){ t ...

  8. spring初级java 应用。搭建环境。基本语法

    搭建环境完成之后.使用spring config editor打开配置的spring xml文件. 自己实现了,spring在java上的一些基本的应用.一共看了四节视频.下面是自己实现的编码: 最基 ...

  9. 计算机网络协议,UDP数据报的分析

    一.UDP数据报的特点 1.基本特性 UDP是在IP数据报的基础上增加了复用和分用以及差错检测的功能 UDP的主要特点如下: UDP是无连接的:即发送数据之前不需要建立连接 UDP使用尽最大努力交付, ...

  10. Java第二十六天,多线程等待换新机制(严格执行化)

    代码: 1.老板类: package com.lanyue.day26; public class bossRunnable implements Runnable { public myLock l ...