黑马程序猿——ADO.NET框架结构一栏表

来源:互联网 发布:阿里云搭建ssr教程 编辑:程序博客网 时间:2024/05/13 10:26

-------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1,主要类

Connection:封装,数据库连接对象,用来建立和数据库的连接Command:封装,执行的数据操作命令

Parameter:封装,数据操作命令中的参数

Datarender:以只读只进方式读取数据

Transaction:实现事务

DataAdapater;用来为数据容器(就是DataSet)加载数据

DataSet:数据容器,相当于一个内存中数据库,可容纳DataTable和关系

DataTable:数据表,可容纳多个,DataRow,和DataColumn

DataRow:代表DataTable中的一行数据

DataColumn:DataTabel中的列,就是字段

DataView:视图

DataRelation:各个表之间的关系

Constraint:主键和外键约束

2,ADO.NET,前后分别连接应用程序和数据源(包括数据库,XML等),它的框架由两个组件构成如下, 

.NET框架数据提供程序

           Connection
           Command
                     Parameters
           DataReader
           DataAdapter
                    SelectCommad
                    InsertCommand
                    UpdateCommand
                    DeleteCommand

DataSet
          DataTableCollection
                   DataTabel
                            DataRowCollection
                            DataColumnCollection
                   CostraintCollection
                   DataRelationCollection

5,Connection对象,不同的数据源有不同Connectiond对象,对应于不同的数据提供程序,常见的有以下四种
System.Data.SqlClient.SqlConnection
System.Data.Oledb.OledbConnection         
System.Data.Odbc.OdbcConnection
System.Data.OracleClient.OracleConnection

属性
ConnectionString:连接字符串
ConnectionTimeOut:连接超时时间
Database:将要使用的数据库名称
DataSource:包含数据库的位置和文件
Provider:数据提供程序名称
State:连接状态,Broken,Closed,Connecting,Fetching,Open
ServerVersion:数据库服务器版本号,
PacketSize:数据包大小,只适用于SqlConnection//以字节为单位
//这些属性只有ConnectionString是可以写入的,其他都是只读的,用户只能通过ConnectionString配置连接

方法
BeginTransaction:开始记录数据库事务日志
ChangeDatabase(DatabaseName):将目前连接的数据库改为参数指定的数据库
Close:关闭与数据库的连接
CreateCommand();创建并返回Command对象
Open:打开连接

事件
InfoMessage:在数据提供程序发送警告,或信息时,该事件被触发,该事件的参数为,SqlInfoMessageEventArgs,参数类包含Error,Message,Source三个属性,分别表示警告集合,错误集合,和发生错误的对象名称,
StateChange:连接状态改变时触发该事件,参数为,StateChangeEventArgs,有CurrentState和OriginalState有两个属性,两个属性都只有0,或1,这两个值,0表示Close,1表示Open,

6,连接字符串:通常由 ; 隔开的参数名称和值构成,不区分大小写,以下是常见参数
provider:设置提供程序的名称,只用于,OleDbConnection对象
connection timeout:
datasource或者server:设置要打开的数据库服务器名称
initial catalog或database:设置要打开的数据库,
password或pwd:数据库登陆密码
user id或uid:数据库账户名
integrated security:是否使用信用连接,默认false,也可设置为sspi,SSPI与true同义
persist security或trusted_connection:默认为false,如果连接处于打开状态,则敏感信息不回返回,如密码
addr/network address:要连接的SQL SERVER服务器地址,
packet size:包大小
workstation:计算机名称,

7,以下是连接到SQL Server的常见配置
string connectionString=”server=localhost;database=qwe;integrated security=SSPI"  ;  //注意没有密码,表示使用数据库的集成验证方式
string connectionString=”server=localhost;database=qwe;uid=133;pwd=134";//使用SQL身份验证
如果用户不熟悉这种字符串配置方式,也可以在页面上添加一个数据源控件,然后在属性编辑器中使用向导来配置连接字符串,配置完成后会自动生成连接字符串

8,以上使用的数据库密码和用户名一般不能硬编码到程序中,而应使用web.config,再对配置文件加密,配置文件中可以包含连接字符串,对连接字符串的修该必须在关闭连接情况下进行,获取Web.config中连接字符串的方法,配置文件是用XML写的,
             1,使用表达式语法,<%$connectionStings:Pubs%>即可获得configuration节点内部的子节点connectionStrings节点下名为Pubs,的连接字符串,
             2,使用System.Web.Configuration命名空间中的类来实现如:string connectionString=ConfigurationManager.ConnectionStrings["Pubs"].ConnectionString;

9,创建Connection对象,有两个构成方法,
SqlConnection sqlConnection=new SqlConnection();
SqlConnection sqlConnection=new SqlConnection(string ConnectionString);

10,访问数据库是对系统资源的访问,要放在try{}catch{}finlly{}块中,或者using块中,进行,推荐使用using块

11,微软提供一个叫做ConnectionStringBulider的类,专门用来存储连接字符串
SqlConnectionStringBulider sqlConnectionStringBulider=new SqlConnectionStringBulider();
sqlConnectionStringBulider.DataSource="134";
sqlConnectionStringBulider.InitialCatalog="gagkk"//其他的类似,以下用这个类创建连接类

12,SqlConnection sqlConnection=new SqlConnection(sqlConnectionStringBulider.ConnectionString);

13, 连接池,ASP.NET会自动管理连接池,当前的所有连接都存在于连接池中,当连接对象调用用Close()时,并不是真正的销毁该连接对象,只是将该连接对象标记为不可用,当有用户需要使用连接对象时,如果用户需要的连接对象的配置,与连接池中存在的连接对象配置相同,且池中该连接没有分配,就会直接使用连接池中的连接对象,而不再次新建一个连接对象,用户可以定义连接池中可以存放的连接对象数,
每个连接对象还有两个属性,max pool size和,min pool size,最大默认为100,最小默认为0,//最小连接对象将在第一次创建连接对象时,自动创建几个相同该连接对象,这两个属性也可以在新建连接对象时设置,(注意是在连接字符串中)
SqlConnection sqlConnection=new SqlConnection(sqlConnectionStringBulider.ConnectionString;+ "max pool size=10;min pool size=5");


14,Command对象,继承与IDbCommad接口,有三种不同的模式执行SQL命令 ,

Text,文本模式,默认执行方式,用于执行sql命令,
Stored Procedure,存储过程模式,用于执行存储过程
TableDirect:返回一个表,等价于Text模式执行select,该模式只适用于OLEDB托管提供程序
属性:
CommandText:设置要执行的SQL命令,存储过程名,
CommaneTimeOut:命令有效时间
Command:即设置执行模式,默认为Text模式
Connection:设置Command对象要使用的连接对象,
Parameters:设置ParameterConnection对象
Transaction:设置Command对象要所要执行的事务日志,属性是Transaction对象
UpdateRawSaurce:设置执行DataAdapter对象的Update方法时,执行结果要如何应用到行,默认值为Both,UpdateRawSaurce.Both或者,UpdateRawSaurce.FirstReturnRecord,
方法:
Cancel:取消命名的执行
CreateParameter:执行Text所指定的命令,返回被影响的行数,只有Update,Insert:Delete会返回影响的行数,其他返回-1
ExecuteReader:执行命令,并创建DataReader对象,此方法与ExcuteNonQuery.ExecuteReader类似,不同点是,前者返回DataReader对象,后者返回被影响的行数
ExcuteNonQuery.ExecuteReader
ExecuteScalar:执行命令,此方法只用来执行Select命令,返回执行结果的第一行第一列的值
ExecuteXmlReader:执行命令,返回XmlReader对象,只有SQL Server数据库才可以使用
Prapare:创建一个事先准备好的命令,对于TableDirect模式不适用
ResetCommandTimeOut:恢复默认有效时间


15,SqlCommand类,构造函数有

SqlCommand();
SqlCommand(string cmdString);
SqlCommand(string cmdString,SqlConnection sqlConnection);
SqlCommand(string cmdString,SqlConnection sqlConnection,SqlTransaction sqltransaction);

16,Command对象的使用步骤,
1,创建有效的Connection对象
2,创建Command对象
3,设置Command对象的Connection属性为上创建的Connection对象
4,打开Connection对象连接
5,执行Command对象的命令
6,关闭Connection对象连
0 0
原创粉丝点击