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只能输入文字或数字的方法
//数字和非数字的判断和排除 <mce:script language="javascript"><!-- //下面的方法根据敲击键盘的ASCII码值来判断是否敲击了数字键 //数字键的ASCII码值介于48到57之间,分别对应数字0到9 //当方法返回true的时候敲入的字符才能显示 function judgeNumber(code) { //alert(code); if(code>=48&code<=57) { return true; } else { return false; } } //英文字母A-Z的ASCII码值65-90,a-z的ASCII码值是97-122 //当方法返回true的时候敲入的字符才能显示 function judgeChar(code) { //alert(code); if ((code >= 65 & code <= 90) || (code >= 97 & code <= 122)) { return true; } else { return false; } } // --></mce:script>
<div> 数字:<asp:TextBox ID="TextBox1" runat="server" οnkeypress="return judgeNumber(event.keyCode);"></asp:TextBox><br /> 字母:<asp:TextBox ID="TextBox2" runat="server" οnkeypress="return judgeChar(event.keyCode);"></asp:TextBox></div>
//此例是去掉中文,将文本框中的中文替换为"" 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,'');"); } }
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对象。
在.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数据源控件不宜使用,每次都是查询到所有的数据之后进行挑选,效率极低。
dotnet夜话 第六、七集笔记相关推荐
- PMBOK(第六版) 学习笔记 ——《第七章 项目成本管理》
系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...
- 《中国通史》纪录片100集笔记(持更)
注:本人是从看了殷商兴亡开始才有做笔记的打算,然鹅前面六集忘光光了,强迫症使我想要整齐的笔记,故前六集借鉴了豆瓣上的一个笔记,第七集开始自己写,豆瓣只到十一集,十一集后纯原创 https://movi ...
- PMBOK(第六版) 学习笔记 ——《第一章 引论》
系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...
- 鸿蒙武器排行榜,刺客伍六七武器排行榜,剪刀垫底,魔刀仅排第二,图四才是最强武器...
<刺客伍六七>是一部非常精彩的动漫,它的整体剧情也是看起来比较轻松愉快,当然在一个有着刺客的世界中,武器自然是刺客的重要道具,那么在这个世界中的武器就会有一个排行榜,下面随小编一起来看:刺 ...
- 第六周读书笔记《浪潮之巅》
第六周读书笔记<浪潮之巅> 沈三景 PB15061249 软件工程 读书笔记 前言 <浪潮之巅>是一本值得反复阅读的书籍,讲述了硅谷IT行业近百年来的风风雨雨,重点分析了AT& ...
- PMBOK(第六版) PMP笔记——《十一》第十一章(项目风险管理)
PMBOK(第六版) PMP笔记--<十一>第十一章(项目风险管理) 第十一章 风险管理: 项目的独特性导致项目充满风险,项目风险是一种不确定的事件或条件,可能发生.将 要发生,也可能不发 ...
- 《Reids 设计与实现》第十六章 集群(下)
<Reids 设计与实现>第十六章 集群(下) 文章目录 <Reids 设计与实现>第十六章 集群(下) 七.复制与故障转移 1.设置从节点 2.故障检测 3.故障转移 4.选 ...
- JavaScrpit 犀牛书第七版笔记
JavaScrpit 犀牛书第七版笔记 挖个坑吧,JavaScript 犀牛书英文的第七版(JavaScript: The Definitive Guide, 7th Edition)其实在去年(20 ...
- (1)1999~2021 年中国城市统计年鉴面板数据(含地级市面板、县级市面板和主要指标)(2)香港统计年刊(3)第一到第七次的人口普查数据(4)全国省市县-五六七普人口数据(5)国际统计年鉴
(1)1999-2021 年中国城市统计年鉴面板数据(含地级市面板.县级市面板和主要指标) (2)香港统计年刊 (3)第一到第七次的人口普查数据 (4)全国省市县-五六七普人口数据 (5)国际统计年鉴 ...
最新文章
- coverage代码覆盖率测试工具:基本原理分析与使用
- 用户空间与内核空间数据交换的方式(zz)
- echars vue 添加数据没更新_Vue遍历数据,并添加到右侧数组
- 绕过waf mysql爆库_sqlilab-Less-21-30-writeup
- Windows自启动程序的十大藏身之所
- java,类的构造方法
- 加入百度地图遇到 framework not found BaiduMapAPI***
- 全网首发:WINDOWS主机与MAC虚拟机文件访问的解决办法
- linux grep 日期,linux 文本处理工具之一grep命令详解
- 计算机图形学——计算机图形系统及硬件基础
- [贪心][区间dp]Zero-One Codeforces1733D1D2
- Python | NumPy | 不完全总结
- Pairwise 找到你的另一半
- UG二次开发GRIP修改颜色
- Require statement not part of import statement. eslint@typescript-eslint/no-var-requires报错修改
- Java20:NullPointerException
- Learning to Track with Object Permanence阅读笔记
- JAVA | MongoDB 去重、聚合函数、Criteria Query使用
- 【Matlab系列】MATLAB中显示输出数据的四种方式
- JVM性能优化一些概念简介
热门文章
- WIN10怎么安装SQL server2000数据库
- 深度学习中的优化函数optimizer SGD Adam AdaGrad RMSProp
- 腾讯自选股任务 青龙脚本
- 经验分享 | 搭建帮助中心的最强攻略
- oracle 280000,续-实例恢复- ORACLE instance shut down
- 高维数组matlab,MATLAB 高维数组
- 瑞安航空和曼彻斯特机场集团因国际旅行限制联合起诉英国政府
- 英国只能设置A记录且无法更改的免费二级域名
- 【代码阅读】云E办项目后端技术栈总结及源码分析
- 1985年全国计算机编程大赛,关于举办2021年“中国高校计算机大赛-团体程序设计天梯赛”校内选拔赛的通知...