什么是ADO.NET:

ADO.NET就是一组类库,这组类库可以让我们通过程序的方式访问数据库,就像System.IO下的类操作文件一样, System.Data.这组类是用来操作数据库(不光是MSSql Server),它提供了统一的编程接口让操作其它数据库(Access、Oracle等)的方式和操作MSSql Server一致

ADO.NET组成

数据提供程序(常用类)
Connection:用来连接数据库
Command:用来执行SQL语句
DataReader:只读、只进的结果集,一条一条读取数据(StreamReader、XmlReader微软的类库中这些Reader的使用方式都差不多)
DataAdapter,一个封装了上面3个对象的对象
数据集(DataSet)
在内存中的临时数据库
断开式数据操作

ADO.NET中的其他常见类

ConnectionStringBuilder//自动生成连接字符串
Parameter//带参数的SQL语句
Transaction//在ADO.NET中使用事务
与DataSet相关的类:
DataView//视图类,DataTable中的数据以不同的视角查看
DataRowView//DataView中的行。
DataTable //DataSet中的数据表
DataRow//DataTable中的行
DataColumn//DataTable中的列
DataRealation//DataTable与DataTable的关系
Constraint//DataTable中建立的约束

各类在开发中的职能

Ado.net访问数据库的方式

方式一:
1.连接数据用Connection
2.执行SQL语句Command
3.执行完毕之后将结果一条一条返回。DataReader
方式二:
使用DataAdapter+DataSet,这种方法本质还是通过Connection、Command、DataReader将数据全部取出来然后放到了DataSet中

访问SqlServer的类

读取Sql Server数据库使用SqlConnection对象
获取连接字符串
使用SqlConnectionStringBuilder帮助获取连接字符串
VS视图-服务器资源管理器-数据库连接上点右键-添加连接     在新添的数据库上点右键 属性  里有连接字符串

打开连接(多次打开问题:ConnectionState枚举)
关闭连接 //相当于设置了路障
释放资源 //相当于把路拆了
调用Connection.Dispose()【继承自Component类的方法】方法时,内部调用了Close()
connection不能重复打开
可以放到using中使用
将Open()方法放到try…catch…中使用,防止发生异常时报错
可以在连接字符串中设置超时时间
可以通过ConnectionState来判断连接的状态

执行命令SqlCommand

表示向服务器提交的命令(SQL语句等)
属性CommandText为要执行的SQL语句,也可以是存储过程名
属性CommandType,指定命令的类型,是sql语句还是存储过程
创建SqlCommand对象:通过new关键字创建
常用的三个方法:
ExecuteNonQuery() 执行对数据库的增删改,返回受影响的行数,适合:insert、delete、update(对于其他语句返回-1)
ExecuteScalar()执行查询,返回首行首列
ExecuteReader() 执行查询,返回DataReader对象
执行步骤:1)打开连接;2)执行操作;3)关闭连接

数据读取SqlDataReader

以只进、只读的方式读取结果集中的数据
注意:使用时必须保证连接是打开的
使用完成后需要进行关闭
说明:每个读取对象都单独占用一个连接
方法Read()完成一行的读取,如果读取到数据则返回true,否则返回false
属性HasRows判断是否结果集中有行
通过索引器reader[index]读取结果集中某列的数据,注意索引从0开始

如果访问的值为null则会报错,所以需要使用reader.IsDbNull(index)进行非空验证
如果执行了多个查询语句则会返回多个结果集,使用NextResult()方法。通过do-while循环遍历
将数据读取到List<>中,可以完成向DataGridView的绑定

ADO.NET基础01(ADO.NET组成,数据库的方式,SqlCommand,SqlDataReader)的更多相关文章

  1. ADO.NET基础01

    数据库中数据的导入导出   在使用一些数据库时,很多时候都要将文件导入导出到指定的文件夹中: 数据的导入导出就必须用到stream函数,这就必须用到Using System.IO的命名空间: **在数 ...

  2. ADO.NET基础03

    数据库和VS的连接,实现数据的同步,让用户的一切信息都可以在数据库中留下记录. ADO.NET基础      它是连接所有数据库的一种特殊的技术,提供对不同的数据库统一操作接口. 在VS中也可以添加数 ...

  3. ADO.NET基础(增删改查)

    ADO.NET是一种数据访问技术,就是将C#和MSSQL连接起来的一个纽带.可以通过ADO.NET将内存中的临时数据写入到数据库中,也可以将数据库中的数据提取到内存中供程序调用. ADO.NET是所有 ...

  4. .Net Core 系列:2、ADO.Net 基础

    目录: 1.环境搭建 2.ADO.Net 基础 3.ASP.Net Core 基础 4.MD5.Sha256.AES 加密 5.实现登录注册功能 6.实现目录管理功能 7.实现文章发布.编辑.阅览和删 ...

  5. 有关ADO.NET基础中的基础的熟悉过程

    现在对于ADO.NET基础的理解与记忆并不严谨和完善 所以,只写一点关于自己的理解,嗯,一种去转换思维理解的方法吧,算是吧 希望各位前辈或者同学,积极指出其中的错误和偏差 个人对于刚接触的ADO.NE ...

  6. 如鹏网学习笔记(六)ADO.Net基础

    ADO.Net基础 一.ADO.Net简介 1,程序要通过SQL语句自动化的操作数据库,必须要用一个类库, 类库要提供execute("insert into ...")/exec ...

  7. ADO.NET基础知识学习(SQLCOnnection&SQLCommand&SQLDataReader&SQLDataAdapter&DataSet)

    通过ADO.NET技术,我们可以高效的完成客户端同数据库之间的数据访问操作,便于我们在客户端程序简便高效的访问以及获取数据库中的有用数据,同时也可以对数据库中的数据进行更新,即可以完成客户端与数据库之 ...

  8. ADO.NET基础开发

    ADO.NET是微软新一代.NET数据库的访问架构,ADO是ActiveX Data Objects的缩写.ADO.NET是数据库应用程序和数据源之间沟通的桥梁,主要提供了一个面向对象的数据访问架构, ...

  9. 使用Spring.net中对Ado.net的抽象封装来访问数据库

    使用Spring.net中对Ado.net的抽象封装来访问数据库     Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序.它提供了很多方面的功能,比如依赖注入 ...

随机推荐

  1. Dll学习一_Dll 创建并动态引用窗体且释放窗体Demo

    1.新建Dll工程 2.Dll工程全部代码 library SubMain; { Important note about DLL memory management: ShareMem must b ...

  2. C#实现发送邮件——核心部分代码

    在KS系统中有个发送邮件的功能需要做上网查阅资料以后,通过自己的部分修改实现了发送邮件的功能话不多说先来个界面: 邮件发送分一下步骤: 1.smtp服务信息设置 2.验证发件人信息 3.添加附件 4. ...

  3. ERROR 1062 (23000): Duplicate entry '0' for key 'PRIMARY'

    OS: centos 6.3DB: 5.5.14 测试创建yoon测试表,没有主键,没有索引,基础数据内容如下: mysql> select * from yoon;+----+-------- ...

  4. [原创]PostgreSQL Plus Advanced Server配合crontab实现定时维护工作

    本文要实现的目标1.PostgreSQL定时全备2.定时删除归档WAL文件3.定时删除全备文件4.删除n天之前的数据库日志文件 实验环境操作系统:RHEL 6.3数据库:PostgreSQL Plus ...

  5. flash builder Error #2032

    flash builder编译时flash player报错:"Error #2032". 解决办法:在菜单栏的 项目-->属性-->构建路径,不要勾选“在调试时使用本 ...

  6. Halcon学习笔记之缺陷检测(一)

    例程:surface_scratch.hdev 说明:这个程序利用局部阈值和形态学处理提取表面划痕 代码中绿色部分为个人理解和注释,其余为例程中原有代码 *surface_scratch.hdev:e ...

  7. 对于Oracle中分页排序查询语句执行效率的比较分析

    转自:http://bbs.csdn.net/topics/370033478 对于Oracle中分页排序查询语句执行效率的比较分析 作者:lzgame 在工作中我们经常遇到需要在Oracle中进行分 ...

  8. python pip和easy_install使用方式(转载)

    easy_install 跟 pip 都是Python 的套件管理程式,有了它们,在使用 Python 开发程式的时候会带来不少方便. easy_install 和pip 有什麼不一样?据 pip 官 ...

  9. BZOJ 2763: [JLOI2011]飞行路线 spfa dp

    题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=2763 题解: d[x][kk]表示从s到x用了kk次免费机会的最少花费. 代码: #in ...

  10. NYOJ-36 最长公共子序列 AC 分类: NYOJ 2014-01-03 20:54 155人阅读 评论(0) 收藏

    #include<stdio.h> #include<string.h> #define N 1010 #define max(x,y) x>y?x:y int dp() ...