ADO.net 就是微软提供的一堆类库,这个类库里面有很多专门操作各种数据库的类,他们都是实现了统一口
组成部分
第一部分: 数据提供程序 命名空间:System.Data.SqlClient
Connection 连接数据库的通道
Command 命令执行对象
DataReader 数据读取器
DataAdapter 数据适配器
第二部分: 数据集 命名空间:System.Data
本地化的结果集,就是把数据库查询之后的结果集,取出来存到本地内存中
ConnectionStringBuiler :自动化生成连接字符串
连接字符串就是告诉程序,要怎么连接数据库,连接哪个数据库,用什么登陆方式
三大对象的理解
Connection 从程序到数据库的一条路
Command 从上面的那条路,走到数据库取很少的数据的一个人
DataReader 从上面的那条路,开到数据库取相对较多的数据的摩托车
DataAdapter 从上面的那条路,开到数据库取很多的数据的卡车
我们根据自己的需求的数据量的大小,选择以上3个对象
最简单的ADO
1.创建连接通道
2.创建命令对象
3.指定命令对象要执行的命令
4.指定命令对象使用的连接通道
5.打开连接
6.执行命令
7.关闭连接
连接池
池: 在电脑内存里的一个键值对集合
如果使用相同的连接字符串来创建一个新的conn对象,那么就会直接从连接池中取出这个对象,不会重新创建
三大方法
ExecuteScalar()
这个事返回sql语句查询出来的结果集的第一行第一列的一个ibject值
ExecuteNonQuery()
执行非查询语句(增删改),并且返回受影响行数
ExecuteReader()
执行查询 返回一个读取器,这个读取器返回的是服务器内存里的一个结果集数据,我们通过hasRows属性可以知道这个结果集有木有数据
Read()方法,可以让读取器向前进一行,,并且把这一行的数据装到当前对象里
通过rede[下标] 就可以去到当前行的数据 因为我们在sql语句中可以给列名取别名,所以这里的列名就不一定和数据库的列名相同
ExecuteScalar
返回查询语句查询到的结果集的第一行第一列的值,由于程序本身不能确定返回值到底是什么类型的,所以,返回的时候object类型,需要我们自己做数据类型转换
在一个insert语句执行完毕后,得到刚才新增的主键
在insert语句的valuer前面加上 “inserted.主键” 这样就可以得到新增的主键
对比普通的insert语句,普通的是显示受影响的行数,如果加上uotput就是返回主键值
如果查询语句返回的是一个空的结果集,返回的是一个null
SqlDataReader
不能手动直接NEW,因为它是直接读取数据库的,而且是读取的一个指针指向的内存,如果让用户直接new,那么就可能出现不赋值的情况
Reader 在读取数据的过程当中,connection是不能中断的,要保持连接,不能手动关闭,断网也会报错
GetDataTime() GetInt32()等方法,是方便我们取到想要的数据的指定的类型,因为我们在程序执行之前就已经知道了查询结果集里面有多少个 列,每一个列是什么类型,所以我们在这里就可以直接取到相应的类型
判断一个值在数据库中是否为null, IS DBNULL
Sqlparameter
六种写法
.
DataSet
1.把数据库查询过后的结果集拿到本地来存储在内存中,就变成了数据集