dotnet夜话 第六、七集笔记

 1、服务器控件。控件的一些基本属性,服务器控件都直接或间接派生自system.web.ui.control类(定义由所有 ASP.NET 服务器控件共享的属性、方法和事件。),control类有以下常见属性clientid,id,skinid,uniqueid,visible等
2、BUTTON事件:click 和command(需要传参数时用到,不同之处在于使用的委托不同)。一些属性:causesvalidation,commandargument,cssclass,enabled,onclientclick(客户端点击事件),text,validationgtoup。
3、textbox控件:textmode属性控制输入框形式。singleline 单行,password 密码 multiline 多行 。autopostback属性。可以在textbox中添加onblur、onpress等客户端事件,虽然vs不认但 一样可以解释出来。下面列举textbox只能输入文字或数字的方法

<textarea cols="50" rows="15" name="code" class="c-sharp">//此例是去掉中文,将文本框中的中文替换为"" protected void Page_Load(object sender, EventArgs e) { Session.Clear(); this.TextBox1.Focus(); if (IsPostBack == false) { TextBox1.Attributes.Add("OnFocus", "this.select();"); TextBox1.Attributes.Add("OnKeyUp", "this.value=this.value.replace(/[/u4e00-/u9fa5]/g,'');"); } } </textarea>

 

4、fileupload控件:属性:filebytes,  。。。使用server.mappath()函数把虚拟目录转变成物理路径
5、literal(和lable只有一个区别,就是在转换成客户端Html代码后,Label就成了<span></span>,而Literal则是什么标记都不带。
Literal 不允许您向其内容应用样式。)控件。response.whrite()显示的文本可能在<html></html>之外
6、panel控件。产生一个div标记
7、placeholder控件。(不产生任何html标记)
8、服务器控件方便 但比html控件的效率要低,有空学习以下html控件。

第七集(很重要的一集)
1、ado.net简介:提供了平台互用性和可伸缩的数据访问。

ADO.NET active data object 动态数据对象 他是负责提取从数据库中获得你想要数据的一组命名空间和类的统称
在ADO,NET里定义了很多的命名空间 比如.sqlclint oledb...等等 负责从不同类型的数据库里提取数据
而在这些命名空间中又定义了很多不同的类负责不同的功能 比如sqlconnection是针对sql数据库负责和数据库取得连接的
而sqldatareader是获得1Reader对象的...

说白了就是一个数据驱动程序。
是.net和sql进行互动的中间件...
一般你只要了解ado.net的四大核心组件:
command
connection
dataAdapter
dataReader
DataSet
那么ado.net也就了解的差不多了....

ADO.NET就是.NET Framework的类库中一些特定的能够对数据库中的数据进行操作的类的集合,如图6-4所示。


 

图6-4  ADO.NET的体系结构

ADO.NET实际包括两个组成部分。
1.数据提供者
也称为.NET Framework 数据提供程序,实际上就是建立和数据库的连接、提取数据、操作数据、执行数据命令等一系列类。
2.DataSet(数据集)
表示数据在客户机内存中的缓存。

NET框架是ADO.NET的运行支撑环境,其内部的类集合中包括了ADO.NET的所有类集合。
ADO.NET是有关数据库访问和操作的主要类集合,是.NET框架中非常重要的组成部分。利用ADO.NET技术编制的数据库程序必须在.NET框架支持下才能运行。

数据提供程序
1.核心对象
ADO.NET中的数据提供程序主要包括如表6-2所示的4个核心对象。
2.非核心对象
除了表6-2所示的核心对象之外,还包括表6-3所示的其他对象。
表6-2  ADO.NET的数据提供程序的核心对象

Connection对象

数据库连接对象,建立和数据库的连接

Command对象

命令对象,更加灵活执行命令的对象

DataReader对象

数据阅读器对象,读取数据源中只读、向前的数据

DataAdapter对象

数据适配器对象,读取数据源数据填充数据集对象DataSet

表6-3  ADO.NET的数据提供程序的非核心对象

Transact对象

事务对象,在AOD.NET中使用事务

CommandBuilder对象

帮助器对象,将自动生成 DataAdapter 的命令属性或将从存储过程派生参数信息并填充 Command 对象的 Parameters 集合

ConnectionStringBuilder对象

帮助器对象,为创建和管理 Connection 对象所使用的连接字符串的内容提供了一种简单的方法

Parameter对象

参数对象,定义命令和存储过程的输入、输出和返回值参数

Exception对象

例外对象,在ADO.NET遇到错误时返回

Error

错误对象,获取错误或者警告信息

ClientPermission

设置代码访问的安全属性


ADO.NET访问数据库的两种机制
前面我们已经知道ADO连接数据库的方法。如果是很大的网络系统,同时连接到数据库服务器的客户机数量会很多。这样在数据库服务器上会频繁进行“建立连接”、“释放资源”、“关闭连接”的操作。这样会使服务器的性能经受严峻的考验。那么,怎样才能改进数据库连接的性能呢?这要从ADO.NET访问数据库的两种机制谈起。
1.连接模式
连接模式下,客户机一直保持和数据库服务器的连接,这和ADO技术是一致的。这种模式适合数据传输量少、系统规模不大、客户机和服务器在同一网络内的环境。一个典型的ADO.NET连接模式如图6-5所示。
连接模式下数据访问的步骤如下。
(1)使用Connection对象连接数据库。
(2)使用Command(命令)对象向数据库索取数据。
(3)把取回来的数据放在DataReader(数据阅读器)对象中进行读取。
(4)完成读取操作后,关闭DataReader对象.
(5)关闭Connection对象。
提示:ADO.NET的连接模式只能返回向前的、只读的数据,这是因为DataReader对象的特性决定的。
2.断开连接模式
断开连接模式适合网络数据量大、系统节点多、网络结构复杂,尤其是通过Internet/Intranet进行连接的网络。典型的ADO.NET断开连接模式应用如图6-6所示。
断开连接模式下数据访问的步骤如下。
(1)使用Connection对象连接数据库。
(2)使用Command对象获取数据库的数据。
(3)把Command对象的运行结果存储在DataAdapter(数据适配器)对象中。
(4)把DataAdapter对象中的数据填充到DataSet(数据集)对象中。
(5)关闭Connection对象。
(6)在客户机本地内存保存的DataSet(数据集)对象中执行数据的各种操作。
(7)操作完毕后,启动Connection对象连接数据库。
(8)利用DataAdapter对象更新数据库。
(9)关闭Connection对象。
由于使用了断开连接模式,服务器不需要维护和客户机之间的连接,只有当客户机需要将更新的数据传回到服务器时再重新连接,这样服务器ADO.NET的具体实现
在.NET Framework中,ADO.NET被具体实现为一个一个的类。这些类又集中在System.Data的命名空间中。下面简要介绍System.Data命名空间的主要内容,这也是ADO.NET将要涉及的主要的类。
6.3.1  System.Data命名空间
System.Data命名空间的核心内容是DataSet对象及相关的类,如表6-4所示。
表6-4  System.Data命名空间的主要类

   

   

DataSet

数据在内存中的缓存

DataTable

内存中的数据表

DataTableCollection

内存中的DataTable集合

DataView

内存中某个DataTable的视图

DataRow

DataTable中的某行数据

DataRowCollection

DataTable中行的集合

DataRowView

DataRow的视图

DataColumn

DataTable的列结构

DataColumnCollection

某个DataTable对象的DataColumn集合

DataRelation

两个DataTable之间的关系

DataRelationCollection

DataSet中所有的DataRelation对象的集合

Constraint

DataColumn对象上的约束

ConstraintCollection

某个DataTable上所有的Constraint对象的集合

DataTableReader

以一个或多个只读、只进结果集的形式获取N DataTable 对象的内容

DataException

使用ADO.NET时发生的意外

6.3.2  System.Data.Common命名空间
System.Data.Common命名空间的核心内容是各种 .NET Framework 数据提供程序共享的类,如表6-5所示。
表6-5  System.Data.Common命名空间的主要类

DataAdapter

一组SQL 命令和一个数据库连接,用于填充 DataSet 和更新数据源

DbCommand

表示要对数据源执行的 SQL 语句或存储过程

DbConnection

表示到数据库的连接

DbDataAdapter

继承DataAdapter的大部分功能

DbDataReader

从数据源返回只读的、向前的数据

DbException

数据源引发的异常

DbParameter

DbCommand对象设置参数

DbTransaction

事务

6.3.3  System.Data.Odbc命名空间
System.Data.Odbc命名空间的核心内容是基于ODBC接口可以访问的数据源的数据提供程序。目前主流的关系型数据库、文本文件、Excel电子表格文件等都支持ODBC接口。命名空间的主要内容如表6-6所示。
表6-6  System.Data.Odbc命名空间的主要类

OdbcCommand

对数据源执行的 SQL 语句或存储过程

OdbcConnection

连接数据源

OdbcDataAdapter

数据命令集和到数据源的连接,它们用于填充 DataSet 以及更新该数据源

OdbcDataReader

从数据源提取只读、向前的数据

OdbcError

从数据源返回的错误或者警告信息

OdbcException

数据源引发的异常

OdbcParameter

设置OdbcCommand对象的参数

OdbcTransaction

设置事务

6.3.4  System.Data.OleDb命名空间
System.Data.OleDb命名空间的核心内容是基于OLEDB接口可以访问的数据源的数据提供程序。命名空间的主要内容如表6-7所示。
表6-7  System.Data.OleDb命名空间的主要类

OleDbCommand

对数据源执行的 SQL 语句或存储过程

OleDbConnection

连接数据源

OleDbDataAdapter

数据命令集和到数据源的连接,它们用于填充 DataSet 以及更新该数据源

OleDbDataReader

从数据源提取只读、向前的数据

OleDbError

从数据源返回的错误或者警告信息

OleDbException

数据源引发的异常

OleDbParameter

设置OleDbCommand对象的参数

OleDbTransaction

设置事务

6.3.5  System.Data.OracleClient命名空间
System.Data.OracleClient命名空间的核心内容是专为Oracle数据库设计的数据提供程序。命名空间的主要内容如表6-8所示。
表6-8  System.Data.OracleClient命名空间的主要类

OracleCommand

对数据源执行的 SQL 语句或存储过程

OracleConnection

连接数据源

OracleDataAdapter

数据命令集和到数据源的连接,它们用于填充 DataSet 以及更新该数据源

OracleDataReader

从数据源提取只读、向前的数据

OracleError

从数据源返回的错误或者警告信息

OracleException

数据源引发的异常

OracleParameter

设置OracleCommand对象的参数

OracleTransaction

设置事务

6.3.6  System.Data.SqlClient命名空间
System.Data.SqlClient命名空间的核心内容是专为SQL Server数据库设计的数据提供程序。命名空间的主要内容如表6-9所示。
表6-9  System.Data.SqlClient命名空间的主要类

SqlCommand

对数据源执行的 SQL 语句或存储过程

SqlConnection

连接数据源

SqlDataAdapter

数据命令集和到数据源的连接,它们用于填充DataSet,以及更新该数据源

SqlDataReader

从数据源提取只读、向前的数据

SqlError

从数据源返回的错误或者警告信息

SqlException

数据源引发的异常

SqlParameter

设置SqlCommand对象的参数

SqlTransaction

设置事务

6.3.7  System.Data.SqlServerCe命名空间
System.Data.SqlServerCe命名空间的核心内容是ADO.NET 2.0中专为SQL Server Mobile数据库设计的数据提供程序。命名空间的主要内容如表6-10所示。
表6-10  System.Data.SqlServerCe命名空间的主要类

SqlCeCommand

对数据源执行的 SQLCE 语句或存储过程

SqlCeConnection

连接数据源

SqlCeDataAdapter

数据命令集和到数据源的连接,它们用于填充DataSet,以及更新该数据源

SqlCeDataReader

从数据源提取只读、向前的数据

SqlCeError

从数据源返回的错误或者警告信息

SqlCeException

数据源引发的异常

SqlCeParameter

设置SqlCeCommand对象的参数

SqlCeTransaction

设置事务

的资源消耗就少,可以同时支持更多并发的客户机。当然,这需要DataSet对象的支持和配合才能完成,这是ADO.NET的卓越之处。

 

(扩展阅读链接http://book.51cto.com/art/200708/54525.htm

 

 

此图显示了ado.net的统一性物理数据库(database)和内存数据库(dataset)的对比
2、connection对象,数据库连接对象,两个属性connectionstring 用于打开数据库的字符串。state 状态(closed和open)。两个方法 open() close()打开和关闭数据库。
3、command对象L三个方法 executenonquery()(返回受影响的行数,主要对数据库之星增 删 改操作。) executereader()返回一datareader对象 executescalar()返回查询结果的第一行第一列的值
4、datareader对象:只读的。读取数据的方式第一是按照索引的方式(如 sqldatareader reader=“”; reader.getint(0)或reader[0]或reader["字段名"] 都能获取第一列)第二是
5、dataadapter对象
6、dataset对象:数据集对象。用于表示那些存储在内存中的数据。
7、datatable对象:是ado.net库中的核心对象,就像普通数据库一样 也有行和列(datarow和datacolumn(列又称字段))
8、参数化sql语句:避免sql注入的两种方式第一是用存储过程写语句效率高防注入,第二就是参数化sql语句。
9、分页查询语句:top  not in  要比在网页中分页更效率
10、sqldatasorse、accessdatasource、objecdatasourse数据源控件不宜使用,每次都是查询到所有的数据之后进行挑选,效率极低。

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章