ADO.NET(二)
对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(二)的更多相关文章
- ADO.NET (二)—— ADO和ADO .NET对照
ADO.NET (二)-- ADO和ADO .NET对照 我们知道ADO.NET的两大核心组件各自是Data Provider和DataSet.假设说 DataSet是ADO.NET的心 ...
- 我与ADO.NET二三事(2)
继上篇开始,这里主要再次精简.因为大家已经熟悉了主要思想以及它的工作方式.那么这里提供的案例改动会很大.上篇的DatabaseCommand***均是为了大家能够轻松的理解所临时编写的.这次提供的接口 ...
- 我与ADO.NET二三事
天气渐冷,闲来无事就把业余时间自己使用的数据访问库凉一凉.这个库本人自己使用了2年多,主要用于个人学习时需要操作数据库时使用,非组织和商业性质的使用.记得上学的时候,在网络上看到SqlServer ...
- ADO.NET 二(Connection)
C# 语言中 Connection 类是 ADO.NET 组件连接数据库时第一个要使用的类,也是通过编程访问数据库的第一步. 接下来了解一下 Connection 类中的常用属性和方法,以及如何连接 ...
- 使用C#进行数据库增删改查ADO.NET(二)
这节接着讲用C#进行数据库CRUD,高级部分. 事务: 事务是执行一批sql语句,如果中途失败,全部回滚,数据不会受影响,中途没有出错则会提交事务,真正对数据进行修改.C#提供了SqlTransac ...
- VC操作ADO的基本策略
一.ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口.ADO 使您能够编写应用程序以通过 OLE. DB 提供者访问和操作数据 ...
- ADO.NET学习小结【1】正在更新...
小弟正在学习ADO.net有误的地方还请大大们批评指出,小弟在此谢过了 一.ADO.net简述: 以前我们写程序尤其是写和数据库有关的应用程序时,你我都得要了解Microsoft ADO COM对象才 ...
- ADO.NET学习(一)
一.ADO.NET简介 ADO.NET可以看作是C#语言访问数据库的一种方式.编程语言编写的程序需要数据库的支持,那么怎样才能让他们建立连接呢?当然是ADO.NET 二.ADO.NET 整体流程 1) ...
- ADO.NET(一)
最近在公司有用到了ADO.NET技术,由浅入深的复习一下. 如图所示,水源就像一个水库,进水龙头就像Connection,同理,抽水机:Command,输水管:DataAdapter 或 DataRe ...
随机推荐
- OpenCV-Python 读取显示视频 | 六
目标 学习读取视频,显示视频和保存视频. 学习从相机捕捉并显示它. 你将学习以下功能:cv.VideoCapture(),cv.VideoWriter() 从相机中读取视频 通常情况下,我们必须用摄像 ...
- 5分钟配置好你的AI开发环境
作者 | Revolver 无论是第一次设置TensorFlow的新手数据科学爱好者,还是使用TB级数据的经验丰富的AI工程师,安装库.软件包或者框架总是一个困难又繁琐的过程.但是像Docker这样的 ...
- coding++ :局部 Loading 加载效果
$("<div id='shade' style='opacity:0.85;background:white'></div><img src='${ctx}/ ...
- JVM tomcat 性能调优
1,新建web 测试项目并且发布到Tomcat,访问路径:http://127.0.0.1:8080/JvmWeb/index @WebServlet("/index") publ ...
- WebView中Java与JavaScript的交互
原文首发于微信公众号:jzman-blog,欢迎关注交流! Android 开发过程中 WebView 的使用比较广泛,常用来加载网页,比如使用 WebView 加载新闻页面.使用 WebView 打 ...
- python学习第二节 数据类型、字符编码、文件处理
标准数据类型 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) 数字 #整型 ...
- js 调用铃声
<audio autoplay="autoplay" id="auto" src=""> </audio> play ...
- MySQL 数据备份与同步
前段时间使用MySQL作为数据存储做了一个小项目.项目上线运行了几十天之后,数据已经越来越多,达到了100多M.用mysqldump每天备份全量数据然后传输到另外一台机器上这种方式进行数据备份,久而久 ...
- 【php】面向对象(一)
1. 学习面向对象的目标: a) 语法的学习: b) 编程思想的学习: i. 过程化: ii. 面向对象:2. 比较(有对象和没对象的区别) a) 没对象: i. 我饿了 自己做饭 ii. 我渴了 自 ...
- 如何在VMwareWorkstation中安装Ubuntu系统
文章更新于:2020-03-17 注:如果安装之后重启停留在Write through,则关闭客户机,将 ISO 镜像换为物理光驱,或取消勾选开机连接.再次开机即可正常进入系统. 文章目录 一.安装环 ...