对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. Pandas 精简实例入门

    目录 0. 案例引入 1. Pandas 主要数据结构 1.1 DataFrame 1.1.1 设置索引 1.1.2 重设索引 1.1.3 以某列为索引 1.2 MultiIndex 1.3 Seri ...

  2. ios shell打包脚本 xcodebuild

    #! /bin/bash project_path=$() project_config=Release output_path=~/Desktop build_scheme=YKTicketsApp ...

  3. IntelliJ Idea 中文乱码问题

    首先,Idea真的是一款很方便的开发工具,但是关于中文乱码这个问题我不得不吐槽,这个编码也弄得这么麻烦干嘛呀...下面就说一下怎么解决中文乱码问题: 1.首先是编辑器的乱码,这个很好解决,file-& ...

  4. [bzoj1800]fly 飞行棋<暴力>

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1800 说实话我这几天运气不错,随便在bzoj上找题都可以找到水题,这题在代码上没有丝毫难度 ...

  5. 文件上传 Window & Linux

    1. 在application配置文件添加图片存储路径的参数 上传路径前必须加 file:/ 否则网页图片请求可能404window gofy: uploadPath: file:/F:/fileUp ...

  6. 发现钉钉打卡定位算法的一个bug

    最近公司取消了指纹打卡,改用钉钉打卡. 天天用这个打卡上班,经常忘记,困扰. 最烦的是好几次明明人在办公室,打卡地址显示在10分钟前的位置,定位失败,不得不重新打卡. 经历过几次定位失败后,我就琢磨起 ...

  7. ScrollViewer - 可用鼠标拖动滚动的列表框

    ScrollViewer添加附加属性: using System; using System.Collections.Generic; using System.Windows; using Syst ...

  8. 拿万元月薪必备的书单,学JAVA的程序员必看的5本书!

    点击蓝色"程序员黄小斜"关注我哟 加个"星标",每天带你读好书! 文/黄小斜 转载请注明出处 每一年的年初都是买书学习热情高涨的时候,虽然不知道你们是让这些书吃 ...

  9. eclipse项目导入和导出

    导入导出过程这里推荐一下一篇他人的文章: https://blog.csdn.net/qq_41937388/article/details/87073572 注意: 1.导入第3步中,如果你的项目已 ...

  10. Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with '#' will be ignored, and an empty messa

    1.git提交的时候遇到: # Please enter the commit message for your changes. Lines starting with '#' will be ig ...