Asp.net之ADO.NET

本文介绍ADO.NET数据访问技术,涵盖平台互用性和可伸缩的数据访问特性。详细解释了物理数据库与内存数据库的关系,以及常用接口抽象,如IDbConnection、IDbcommand、IDbDataAdapter等。并针对SQLServer数据库对象的使用方法进行了深入解析。
摘要由CSDN通过智能技术生成

前言:

一、ADO.NET 顾名思义是要我们首先连接到数据,其提供了平台互用性和可伸缩的数据访问,ADO.NET的好处就是可以断开数据库连接,其内存中是建立一个模拟的数据库,我们接下来看一下数据库内部和物理数据库之间的关系:

物理数据库→→内存数据库
属性名属性类型属性说明
database→→DataSet
table→→DataTable
column→→DataColumn
row→→DataRow
view→→DataView
relation→→DataRelation

二、接下来我们介绍一下ADO.NET中的常用的接口抽象:

数据库访问接口(System.Data)IDbConnectionIDbcommandIDbDataAdapterIDataReader
数据库访问抽象类(System.Data.Common)DbConnectionDbCommandDbDataAdatperDataReader
SQL Server(System.Data.SqlClient)SqlConnectionSqlCommandSqlDataAdatperSqlDataReader
Access(System.Data.OleDb)OleConnectionOleCommandOleDataAdatperOleDataReader
MySql(System.Data.MySqlClient)MySqlConnectionMySqlCommandMySqlDataAdatperMySqlDataReader
Oracle(System.Data.OracleClient)OracleConnectionOracleCommandOracleDataAdatperOracleDataReader

三、针对SQL Server的数据库对象用法

  1. Connection对象:数据库连接对象,其功能是负责对数据源的连接,所有Connection对象的基类都是DbConnection类。
SqlConnection connection = new SqlConnection("Data Source=(local);Initial Catalog=AspNetStudy;Persist Security Info=True;User ID=sa;Password=sa"); 
  1. Command对象:数据库命令对象,Command对象主要执行包括添加、删除、修改及查询数据的操作的命令。也可用来执行存储过程。注意:用于执行存储过程的时候需要将Command对象的CommandType属性设置为CommandType.StoredProcedure,默认情况下CommandType属性为CommandType.text.,表示执行普通的Sql语句。
    a) ExectuteNonQuery() :执行一个SQL语句,返回受影响的行数,这个方法主要用于执行对数据库执行增加、更新、删除操作,注意查询的时候不是调用这个方法。
    b)ExecuteReader():执行个查询的SQL语句,返回一个DataReader对象。
    c) ExecuteScalar():从数据库检索单个值,主要用于统计操作。
//实例化Connection对象 SqlConnection connection = new SqlConnection("Data Source=(local);Initial Catalog=AspNetStudy;Persist Security Info=True;User ID=sa;Password=sa"); //实例化Command对象 SqlCommand command = new SqlCommand("select count(1) as 男性人数from UserInfo where sex=1", connection); //打开Connection对象 connection.Open(); //执行SQL语句 int count = int.Parse(command.ExecuteScalar().ToString()); //关闭Connection对象 connection.Close(); Response.Write("在UserInfo表里共有" + count + "个男性。"); 
  1. DataReader 对象:它是一个读取行的只读流方式,绑定数据时比使用数据集方式性能要高,因为他是只读的,所以如果要对数据库中的数据进行修改就需要借助于其他方法将所作的更改保存到数据库。
    a) DataReader 对象不能通过直接实例化,必须借助于相关的Command对象来创建实例,
//实例化Connection对象 SqlConnection connection = new SqlConnection("Data Source=(local);Initial Catalog=AspNetStudy;Persist Security Info=True;User ID=sa;Password=sa"); //实例化Command对象 SqlCommand command = new SqlCommand("select * from UserInfo where sex=1", connection); 
 114 / 235 
 
//打开Connection对象 connection.Open(); //得到DataReader的实例,注意使用了CommandBehavior这个参数,以便同时关闭Connection SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection); //如果当前记录还有下一条记录,则循环不会终止 
  1. DataAdapter对象:数据适配器对象,DataAdapter对象利用数据库连接对象(Connection)连接的数据源,使用数据库命令对象(Command)规定的操作从数据源中检索出数据送往数据集对象(DataSet)或者将数据集中经过编辑后的数据送回数据源。
dataAdapter1.Fill(dataTable);//直接填充表 
或者 dataAdapter1.Fill(dataSet11, "Products");//填充dataSet11数据集中的"Products"表 
  1. DataSet对象:数据集对象,DataSet对象用于表示那些存储在内存中的数据,它相当于一个内存中的数据库。它可以包含dataTable对象及DataView对象,其主要用于管理存储在内存中的数据以及对数据的断开操作。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值