ADO.NET数据访问技术
 
大家好,我是小雨,今天给大家讲的主要内容是:
 
1,ADO.NET基础 
 
2,连接模式数据库访问 
3,断开模式数据库访问
 
=============================
 
首先我们来看看第一个内容,ADO.NET基础
 
 
 
ADO.NET模型
ADO.NET的组件 
ADO.NET的数据访问模式 
 
 
 
我们先来看两幅图
 
 
 
 
 
 
 
 
 
数据集DataSet位于System.Data命名空间下,用于在内存中暂存数据,可以把它看成是内存中的小型数据库。DataSet包含一个或多个数据表(DataTable),表数据可来自数据库、文件或XML数据。 
DataSet一旦读取到数据库中的数据后,就在内存中建立数据库的副本,在此之后的所有操作都是在内存中的DataSet中完成,直到执行更新命令为止。
 
 
 
在ADO.NET中,连接数据源有4种数据提供程序。如果要在应用程序中使用任何一种数据提
供程序,必须在后台代码中引用对应的命名空间,类的名称也随之变化。 
 
 
 
 
 
下面我们再说说第二个问题,连接模式数据库访问
 
1,使用SqlConnection对象连接数据库 
2,使用SqlCommand对象执行数据库命令 
 
3,使用SqlDataReader读取数据 
4,为SqlCommand传递参数 
 
5,使用SqlCommand执行存储过程
6,使用事务处理
 
 
 
==============================
 
 
 
连接模式访问数据库的开发流程有以下几个步骤:
创建SqlConnection对象与数据库建立连接;
创建SqlCommand对象对数据库执行SQL命令或存储过程,包括增、删、改及查询数据库等命令;
如果查询数据库的数据,则创建SqlDataReader对象读取SqlCommand命令查询到的结果
集,并将查到的结果集绑定到控件上。
 
 
 
 
 
 
使用SqlConnection对象连接数据库
 
操作数据库的第一步是建立与数据库的连接,因此首先要创建SqlConnection对象。要创建SqlConnection对象必须先了解SqlConnection对象的常用属性和方法。
 
ConnectionString属性通常包含以下参数,各参数间用“;”分隔。
Provider:用于设置数据源的OLE DB驱动程序。如:Access为“Microsoft.Jet.OLEDB.4.0”;SQL Server 6.5或之前版本为“SQLOLEDB”。
Data Source:设置数据源的实际路径。
Password:设置登录数据库所使用的密码。
User ID:设置登录数据库时所使用的帐号。
例如,连接Access数据库的的连接参数为:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\abc.mdb
 
对于SQL7.0或更高版本的SQL数据库,ConnectionString属性包含的主要参数有:
 
 
 
Data Source或Server:设置需连接的数据库服务器名称。
Initial Catalog或Database:设置连接的数据库名称。
AttachDBFilename:数据库的路径和文件名。
User ID 或 uid:登录SQL Server数据库的账户。
Password 或 pwd:登录SQL Server数据库的密码。
Integrated Security:是否使用Windows集成身份验证,值有三种:true、false和SSPI,true和SSPI表示使用Windows集成身份验证。
Connection Timeout:设置SqlConnection对象连接SQL数据库服务器的超时时间,单位为秒,若在所设置的时间内无法连接数据库,则返回失败信息。默认为15秒。
 
 
 
连接数据库时,有两种验证模式:
混合验证模式
Windows集成验证模式
使用混合验证模式的连接参数为:
Data Source =localhost; Initial Catalog=northwind; User Id=sa;pwd=123
其中,Data Source =localhost表示连接本机SQL数据库的默认服务器。
使用Windows集成验证模式的连接参数为:
 Data Source =localhost; Initial Catalog=northwind; Integrated Security=true
混合验证模式必须在连接字符串中以明文形式保存用户名和密码,因此安全性较差。Windows集成验证模式不发送用户名和密码;仅发送用户通过身份验证的信息。从安全角度考虑,建议使用Windows集成验证模式。
 
 
 
例如:Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\Student.mdf;
Integrated Security=True;User Instance=True
其中,Data Source=.\SQLEXPRESS表示SQL Server2005的SQLEXPRESS数据库服务器,AttachDbFilename表示数据库的路径和文件名,|DataDirectory|表示网站默认数据库路径App_Data。
 
 
 
SqlConnection对象的常用方法
 
 
 
 
 
 
 
 
在创建数据库连接对象时,需要指定连接字符串。通常有以下2种方法获取连接字符串:
创建连接对象,并在应用程序的中硬编码连接字符串。
SqlConnection  对象名称 =  new SqlConnection("连接字符串");

SqlConnection  对象名称  =  new SqlConnection( );
对象名称. ConnectionString="连接字符串";
 
把连接字符串放在应用程序的fig文件中,再引用fig文件。
在fig配置文件的<configuration>节中添加如下的代码。
 
 
 
<connectionStrings>
   <add name="StudentCnnString" 
   connectionString="Data Source=.\SQLEXPRESS;
   AttachDbFilename=|DataDirectory|\Student.mdf;
   Integrated Security=True; User Instance=True"
   providerName="System.Data.SqlClient" />
</connectionStrings>
 
 
 
fig文件中有了连接字符串后,就可以从fig中读取连接字符串。
 
需要使用System.Configuration.ConfigurationManager类读取连接字符串。代码如下:
 
string strCnn= ConfigurationManager.ConnectionStrings
["StudentCnnString"].ConnectionString;
//读取连接字符串
SqlConnection cnn = new SqlConnection(strCnn);
//定义连接对象
为了使上述代码正常工作,必须使用
using System.Configuration语句引入命名空间。
 
创建好SqlConnection连接对象后,并没有与数据库建立连接,要建立数据库连接,还必须使用cnn.Open()方法打开数据连接,然后才可以对数据库进行各种操作。操作完数据库后,一定要使用cnn.Close()方法关闭连接。
 


使用SqlCommand对象执行数据库命令
 
成功连接数据库后,接着就可以使用SqlCommand对象对数据库进行各种操作,如读取、写入、修改和删除等操作
 
 
 
 
建立SqlCommand对象的方法有4种:
 
SqlCommand 对象名 = new SqlCommand();
SqlCommand 对象名 = new SqlCommand("SQL命令");
SqlCommand 对象名= new SqlCommand("SQL命令" , 连接对象);
SqlCommand 对象名= new SqlCommand("SQL命令" , 连接对象 , 事务对象);
 
 
 
SqlCommand对象的常用方法
 
 
 
 
1.ExecuteNonQuery方法
ExecuteNonQuery方法只能执行Insert、Update和Delete命令,因此可以增加、修改和删除数据库中的数据。增加、修改和删除数据库中的数据的步骤相同,具体描述如下:
创建SqlConnection对象,设置连接字符串;
创建SqlCommand对象,设置它的Connection和CommandText属性,分别表示数据库连接和需要执行的SQL命令。
打开与数据库连接;
使用SqlCommand对象的ExecuteNonQuery方法执行CommandText中的命令;并根据返回值判断是否对数据库操作成功。
关闭与数据库连接;
 
2. ExecuteScalar方法
ExecuteScalar方法一般用来执行查询单值的Select命令,它以object类型返回结果表第一行第一列的值。对数据库操作时,具体步骤如下:
创建SqlConnection对象,设置连接字符串;
创建SqlCommand对象,设置它的Connection和CommandText属性;
打开与数据库连接;
sql server两种身份验证模式使用SqlCommand对象的ExecuteScalar方法执行CommandText中的命令;并返回结果表第一行第一列的值供应用程序使用。
关闭与数据库连接;
 
 
 
使用SqlDataReader读取数据
 
SqlDataReader对象是一个向前只读的记录指针,用于快速读取数据。对于只需要顺序显示数据表中记录的应用而言,SqlDataReader对象是比较理想的选择。
在读取数据时,它需要与数据源保持实时连接,以循环的方式读取结果集中的数据。这个对象不能直接实例化,而必须调用SqlCommand对象的ExecuteReader方法才能创建有效的SqlDataReader对象。SqlDataReader对象一旦创建,即可通过对象的属性、方法访问数据源中的数据。
 
SqlDataReader对象的常用属性:
FieldCount:获取由SqlDataReader得到的一行数据中的字段数。
isClosed:获取SqlDataReader对象的状态。true表示关闭,false表示打开。
HasRows:表示SqlDataReader是否包含数据。
 
 
 
SqlDataReader对象的常用方法:
Close()方法:不带参数,无返回值,用来关闭SqlDataReader对象。
Read()方法:让记录指针指向本结果集中的下一条记录,返回值是true或false。
NextResult()方法:当返回多个结果集时,使用该方法让记录指针指向下一个结果集。当调用该方法获得下一个结果集后,依然要用Read方法来遍历访问该结果集。
GetValue(int i)方法:根据传入的列的索引值,返回当前记录行里指定列的值。由于事先无法预知返回列的数据类型,所以该方法使用Object类型来接收返回数据。
GetValues (Object[] values)方法:该方法会把当前记录行里所有的数据保存到一个数组里。可以使用FieldCount属性来获知记录里字段的总数,据此定义接收返回值的数组长度。
GetDataTypeName(int i)方法:通过输入列索引,获得该列的类型。
GetName(int i)方法:通过输入列索引,获得该列的名称。综合使用GetName和GetValue两方法,可以获得数据表里列名和列的字段。
IsDBNull(int i)方法:判断指定索引号的列的值是否为空,返回True或False。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。