什么是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. 使用mysql关键字做类字段名报的错,花了我一个钟,坑啊

    com.modelsystem.po.ProjectPlan@701faaedHibernate: insert into ld.project_plan (addTime, describe, ex ...

  2. robots.txt用法

    主要作用是告诉蜘蛛爬虫该网站下哪些内容能抓取,哪些内容不能抓取.虽然可以没有robots.txt这个文件,默认就抓取该网站的所有文件,对搜索引擎爬虫没有任何的影响,但是如果你想控制蜘蛛的检索间隔,你就 ...

  3. C# 实例化接口对象

    在head first 设计模式中 用到了很多很多接口对象 首先澄清一个问题,就是接口不仅可以声明对象,而且可以把对象实例化,还可以当做参数被传入. 一.接口回调 这就是继承中的向上转型.父类 FL= ...

  4. 通过FTP将一个数据文件从A服务器下载到B服务器的整个过程

    现在的环境如下: 服务器A :192.168.1.104 服务器B:192.168.1.138 需要将A服务器上的某个数据文件下载到B服务器上,传输方式为:FTP 那么,要怎么去实现呢? 首先,需要添 ...

  5. MyException

    自定义Exception using System; using System.Collections.Generic; using System.Linq; using System.Text; u ...

  6. 查看MYSQL数据库中所有用户及拥有权限

    查看MYSQL数据库中所有用户 mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM m ...

  7. cocos2dx中的CCRect的用法

    CCRect是cocos2dx中的一块矩形区域 常用于碰撞检测及渲染时限定纹理的大小 CCRect rect=spr.boundingBox(); CCRect rect=CCRect(0,0,spr ...

  8. VBS基础篇 - 常量

    常量:指的是在程序运行过程中其值保持不变的量,它用来保存固定不变的数值,字符串等常数 . 常量的定义:在vbscript中使用使用 Const 指令可以创建名称具有一定含义的字符串型或数值型常量,并给 ...

  9. 3243: [Noi2013]向量内积 - BZOJ

    Description 两个d 维向量A=[a1,a2,...,ad]与B=[b1,b2,...,bd]的内积为其相对应维度的权值的乘积和,即: 现有 n 个d 维向量x1,...,xn ,小喵喵想知 ...

  10. java 连接池的简单实现

    最近一个项目中需要自己写个连接池, 写了一个下午,挺辛苦的,但不知道会不会出问题, 所以,贴到博客上,欢迎各路大神指点 1. 配置信息: /** * */ package cn.mjorcen.db. ...