【Asp.Net】——ADO.NET为访问数据插上了翅膀

本文介绍了ADO.NET的概念和发展,详细解释了它如何通过内存数据表示、数据处理方式等改进数据库访问效率。文中还展示了ADO.NET核心组件如Connections、Commands、DataReaders、DataSets和DataAdapters的具体使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【前言】
前面在介绍asp.net的软件要求的时候提到了MDAC的安装,其实安装它的目的就是为了让我们更加安全,便利的访问数据库,它的实质就是为asp.net的程序提供了访问数据库的ADO.NET.
【内容】
1. Ado.Net的概念
一组向 .NET Framework 程序员公开数据访问服务的类。它为创建分布式数据共享应用程序提供了一组丰富的组件。它提供了对关系数据XML 和应用程序数据的访问, ADO.NET 支持多种开发需求,包括创建由应用程序、工具、语言或 Internet 浏览器使用的前端数据库客户端和中间层业务对象。
2. Ado.Net的发展
这里写图片描述
在ADO.NET之前,发展的访问数据库的对象无论是DAO,RDO,ADO,访问数据库的时候都是提供了一组用户接口,而且对于数据库的访问是建立在连接的状态下的。
ADO.NET的XML技术介绍:
这里写图片描述
业务层负责了与基本层中数据存储进行通信,然后构造了dataset。将dataset以xml模式传递会用户接口。由于dataset是数据的内存副本,所以它也存放在数据要传递会的客户机的内存中。进而实现了由应用程序访问数据库的快速方式。
从上面可以看出从ADO.NET开始,对数据库的访问就发生了革命性的变化:

形式进步
内存数据表现形式独立表向dataset所包含的多个表过度
处理表的方式由join合并表向dataRelation对象处理查询
数据导航由顺序扫向非顺序过度
访问方式由连接访问向已断开访问过度
共享方式由执行类型转换向xml格式过度
伸缩性由长时间的锁定和保持数据库向短时间过度

内存中数据表现形式 由独立的表向dataset所包含的一个或多个表过度
处理表关系 由join合并表向datarelation对象处理查询
数据导航 由顺序扫面向非顺序过度
访问方式 由连接访问向已断开访问过度
共享方式 由执行类型转换向xml格式无限制传送过度
伸缩性 由长时间的锁定和保持数据库向短时间过度
3.ADO.Net的组成:
这里写图片描述

Connections. 用于连接和管理针对数据库的事务。
Command: 用于发出针对数据库的SQL指令。分为了sqlcommand和 oledbcommand。
DataReaders:用于从SQL Server数据源读取只进流的数据记录。
DataSets: 用于针对结构型数据,XML数据和关系型数据的存储,远程处理和编程。
DataAdapters:用于推送数据到DataSet,并针对数据库协调数据。
Connections示例:

public sqlhelp()
        {
            string connStr = @"server=CYL520;database=newsystem;User ID=sa;PWD=1"; 
            using (SqlConnection connection = new SqlConnection(connStr))
            {
                connection.Open();   
            }
        }`

SQLcommand示例:

        /// <summary>
        /// 该方法执行的传入的是sql语句。
        /// </summary>
        /// <param name="cmdtext">执行sql语句或者是存储过程!</param>
        /// <returns></returns>
 public DataTable ExecuteQuery(string cmdtext,CommandType ct)
        {
            DataTable dt = new DataTable(); //定义了一个表
            cmd = new SqlCommand(cmdtext , getConn());
            cmd.CommandType = ct;
            using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                dt.Load(sdr);
            }

            return dt;
        }

DataReader示例:

        /// <summary>
       ///返回datareader对象
       /// </summary>
       /// <returns></returns>
        public SqlDataReader  sqlc()
        {  
            CommandType ct=CommandType.Text;
            string cmdtext = "select * from Category";
            SqlCommand cmd = new SqlCommand(cmdtext,createconnection());
            SqlDataReader dr = new SqlDataReader();
            dr=cmd.ExecuteReader ();

        }

SQLdataAdapter示例:

       /// <summary>
       /// 适配器sqldataadapter
       /// </summary>
       /// <returns></returns>
       public DataTable  sqlB()
       {
           SqlDataAdapter sda=new SqlDataAdapter();
           sda.SelectCommand=new SqlCommand("select * from person",createconnection());
           DataSet ds = new DataSet();
           DataTable dt=new DataTable ();
           sda.Fill(ds,"person");
           return ds.Tables["person"];

       }
评论 86
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值