黑马自学ADO学习

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.把数据库查询过后的结果集拿到本地来存储在内存中,就变成了数据集

SqlDataAdapter

时间: 2024-10-11 17:53:16

黑马自学ADO学习的相关文章

黑马程序员学习笔记_OC之给NSString增加分类

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>.<a href="http://www.itheima.com"target="blank">.Net培训</a>.期待与您交流! ---------------------- 黑马程序员学习笔记_OC

黑马程序员学习笔记2014/7/5

观看视频:011_标识符_黑马程序员_Java基础视频.avi Java语言的基础组成 关键字.标识符.注释.常量和变量.运算符.语句.函数.数组.   关键字     标识符 1.在程序中自定义的一些名称 2.由26个英文字母大小写,数字,0-9符号 :_ $ 组成 3.定义合法标识符的规则: a.数字不可以开头 b.不可以使用关键字 4.Java中严格区分大小写 5.注意:在起名的时候尽量起一个有意义的名称       观看视频:012_常量_黑马程序员_Java基础视频 常量与变量 Jav

黑马程序员学习笔记-C指针小结

黑马程序员学习笔记-C指针 1. 指针简介: 指针是C语言中非常重要的数据类型,是C语言的精华 2. 指针变量定义: 格式:类名标识符 *指针变量名; 指针变量只能存储地址 指针就一个作用:能够根据一个地址值,访问对应的存储空间 指针变量p前面的int:指针变量只能指向int类型的数据 3.实例: 4. 注意点: 指针变量只能存储地址.指针变量未经初始化,不要拿来间接访问其他存储空间.指针变量的初始化可以int *p = &a;也可以拆分成两句:int *p; p =&a;.定义变量时的*

黑马程序员学习笔记-OC之foundation框架

黑马程序员学习笔记-OC之foundation框架 1.简介:foundation框架是其它所有ios框架的基础,包含了很多常用类型,结构体.枚举.类等. 2. 结构体:NSRange表示范围的结构体. NSPoint/CGPoint表示坐标点的结构体 NSSize/CGSize表示宽高的结构体 NSRect/CGRect表示坐标点+宽高的结构体 3. 类字符串:NSString  字符串类 NSMUtableString  易变字符串类 NSArray         数组类 NSMUtabl

黑马自学10.10学习

数据库 数据类型 varchar 表示可变的 分离数据库:是将当前数据库文件和数据库引擎关系断开,没有任何关系了,这样我们就可以随意的拷贝,剪切 在数据库文件上右键-->任务-->分离-->勾选”删除链接”-->确定 脱机:告诉数据库引擎,暂停操作当前数据库,也可以随意拷贝,剪切 附加:把已经分离的数据库文件,重新让数据库引擎管理 主键:标识一张表里面数据行 主键分为逻辑主键和业务主键 业务主键就是具有真实意义的,比如身份证,银行卡,缺点:一旦变化,难以维护 逻辑主键:没有任何实际

黑马自学9.29学习

抽象类 抽象方法用abstract修饰 抽象方法不能有方法体 抽象方法不能实例化,因为有抽象成员,而抽象成员不能有方法体的 子类必须重写父类的抽象方法 在子类中无法通过base关键字调用父类的抽象方法 抽象方法是光说不做的,只是定义了具有这样的行为,但是具体的实现交给了子类 抽象类中可以拥有非抽象成员,为了继承给子类 抽象类中可以拥有虚方法 子类必须重写父类的方法,父类没有必要实例化,就用抽象类 抽象类是被继承的,是为了多态 抽象成员不能是私有的 接口 是一个特殊的抽象类 使用interface

黑马自学9.28学习

里氏转换原则:LSP子类可以替换父类的位置,并且程序的功能不受影响 父类有的功能子类都有,所以不影响程序的功能 父类变量指向了一个子类对象 当一个父类变量指向一个子类对象的时候,只能通过这个父类变量调用父类的成员,子类独有的成员无法调用 子类变量不能指向1个父类对象 必须要有继承关系,才可以使用强制转换 如果一个父类变量指向的就是一个父类对象,将这个父类对象转换为子类对象的会报异常 如果一个父类变量指向一个子类对象,那么可以将这个父类变量转换为子类对象 is 判断变量是否是指定的类型 如果没有继

黑马自学9.24学习

交错数组  行固定,但是每一行的列不固定 二维数组  行固定.列固定 构造方法 访问修饰符一般情况下是public,没有返回值,方法名与类名一样 构造函数是创建对象的时候CLR自动调用 程序员无法手动调用 构造函数可以有参数 如果我们希望在创建这个类的对象的同时需要执行一些代码,我们就可以把这些代码写到构造函数中 This关键字,代表当前对象,当前运行在内存里的那个对象 被partial关键字修饰的类.叫做部分类,或者伙伴类 C#编译器在编译的时候会将伙伴类编译成一个类,所以在另一个伙伴类中定义

【转载】如何自学深度学习技术,大神Yann LeCun亲授建议

编者按:Quora 上有网友提问:自学机器学习技术,你有哪些建议?(What are your recommendations for self-studying machine learning),Yann LeCun 在该提问下做了解答.本文由雷锋网(公众号:雷锋网)根据 LeCun 的回答整理而来,原文链接:http://www.leiphone.com/news/201611/cWf2B23wdy6XLa21.html 在网上有很多关于 Machine Learning 的材料.教程和视