仓酷云

标题: ASP.NET网站制作之Asp.net中创立和利用Ado.net [打印本页]

作者: 海妖    时间: 2015-1-16 22:37
标题: ASP.NET网站制作之Asp.net中创立和利用Ado.net
在CSDN里搜索一下“初学”两字,竟有三百余篇帖子(也许更多)。有些帖子说,有了asp的基础,只要15天就能很熟悉了,我甚感自己的愚钝。更多帖子是向大家请教初学者适合看书。两个多月的时间(当然平常杂事比较多。ado|asp.net|创立在贸易使用程序中最主要的组件是数据,不管是在线的商务使用程序、公司的企业软件仍是小型公司的管帐使用程序无不云云:经由过程一个通用的线程与数据打交道,即都必需完成疾速、无效、牢靠的体例存储、检索和处置数据。

但是,一向一来使人辣手的成绩是这些数据文件常以分歧的格局存储,这就必要开辟者学会用多种分歧的体例来处置完整一样的事变。Microsoft等诸多半据供应者力图完成数据会见格局的尺度化。

从Odbc的呈现到Dao、Rdo、Oledb、Ado的完成,能够说尺度化的历程慢慢完成。出格是Ado的呈现很好的完成了通用数据会见的形式,以致良多人以为,每隔两年进修一种新的数据会见工具模子的年月已已往了。可是经由过程Internet,我们发明这类设法是毛病的。

1、ADO.NET的计划方针

跟着使用程序开辟的开展演化,新的使用程序已基于Web使用程序模子愈来愈松懈地耦合。现在,愈来愈多的使用程序利用XML来编码要经由过程收集毗连传送的数据。Web使用程序将HTTP用作在层间举行通讯的布局,因而它们必需显式处置哀求之间的形态保护。这一新模子年夜年夜分歧于毗连、紧耦合的编程作风,此作风曾是客户端/服务器时期的标记。在此编程作风中,毗连会在程序的全部保存期中坚持翻开,而不必要对形态举行特别处置。

计划ADO.NET的目标是为了满意这一新编程模子的以下请求:具有断开式数据布局;可以与XML严密集成;具有可以组合来自多个、分歧数据源的数据的通用数据暗示情势;在创立ADO.NET时,Microsoft具有以下计划方针。

使用以后的ADO常识

ADO.NET的计划满意了现今使用程序开辟模子的多种请求。同时,该编程模子尽量地与ADO坚持分歧,这使现今的ADO开辟职员不用重新入手下手进修全新的数据会见手艺。ADO.NET是.NETFramework的固有部分,因而关于ADO程序员决不是完整生疏的。

ADO.NET与ADO共存。固然年夜多半基于.NET的新使用程序将利用ADO.NET来编写,但.NET程序员仍旧能够经由过程.NETCOM互操纵性服务来利用ADO。

撑持N层编程形式
ADO.NET为断开式n层编程情况供应了一流的撑持,很多新的使用程序都是为该情况编写的。利用断开式数据集这一观点已成为编程模子中的核心。n层编程的ADO.NET办理计划就是DataSet。

集成XML撑持
XML和数据会见是严密接洽在一同的,即XML的全体内容都是有关数据编码的,而数据会见愈来愈多的内容都与XML有关。.NETFramework不但撑持Web尺度,它仍是完整基于Web尺度天生的。

XML撑持内置在ADO.NET中十分基础的级别上。.NETFramework和ADO.NET中的XML类是统一布局的一部分,它们在很多分歧的级别集成。您不用在数据会见服务集和它们的XML响应服务之间举行选择;它们的计划原本就具有从个中一个超过到另外一个的功效。
2、ADO.NET的组件

计划ADO.NET组件的目标是为了从数据操纵平分解出数据会见。ADO.NET的两个中心组件会完成此义务:DataSet和.NETFramework数据供应程序,后者是一组包含Connection、Command、DataReader和DataAdapter工具在内的组件。

ADO.NETDataSet是ADO.NET的断开式布局的中心组件。DataSet的计划目标很明白:为了完成自力于任何数据源的数据会见。因而,它能够用于多种分歧的数据源,用于XML数据,或用于办理使用程序当地的数据。DataSet包括一个或多个DataTable工具的汇合,这些工具由数据行和数据列和主键、外键、束缚和有关DataTable工具中数据的干系信息构成。

ADO.NET布局的另外一个中心元素是.NETFramework数据供应程序,其组件的计划目标相称明白:为了完成数据操纵和对数据的疾速、只进、只读会见。Connection工具供应与数据源的毗连。Command工具使您可以会见用于前往数据、修正数据、运转存储历程和发送或检索参数信息的数据库命令。DataReader从数据源中供应高功能的数据流。最初,DataAdapter供应毗连DataSet工具和数据源的桥梁。DataAdapter利用Command工具在数据源中实行SQL命令,以便将数据加载到DataSet中,并使对DataSet中数据的变动与数据源坚持分歧。

能够为任何数据源编写.NETFramework数据供应程序。.NETFramework供应了四个.NETFramework数据供应程序:SQLServer.NETFramework数据供应程序、OLEDB.NETFramework数据供应程序、ODBC.NETFramework数据供应程序和Oracle.NETFramework数据供应程序。

下图阐释了ADO.NET布局的组件。

3、利用ADO.NET毗连到数据源
在ADO.NET中,可使用Connection工具来毗连到指定的数据源。若要毗连到MicrosoftSQLServer7.0版或更高版本,请利用SQLServer.NETFramework数据供应程序的SqlConnection工具。若要利用用于SQLServer的OLEDB供应程序(SQLOLEDB)毗连到OLEDB数据源大概毗连到MicrosoftSQLServer6.x版或较早版本,请利用OLEDB.NETFramework数据供应程序的OleDbConnection工具。若要毗连到ODBC数据源,请利用ODBC.NETFramework数据供应程序的OdbcConnection工具。若要毗连到Oracle数据源,请利用Oracle.NETFramework数据供应程序的OracleConnection工具。

1、利用ADO.NET毗连到SQLServer
SQLServer.NETFramework数据供应程序利用SqlConnection工具供应与MicrosoftSQLServer7.0版或更高版本的毗连。

SQLServer.NETFramework数据供应程序撑持相似于OLEDB(ADO)毗连字符串格局的毗连字符串格局。有关无效的字符串格局称号和值,请拜见附表1

以下代码示例演示怎样创立和翻开与SQLServer(版本7.0或更高版本)数据库的毗连。

[VisualBasic]
DimmyConnAsSqlConnection=NewSqlConnection("DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=northwind")
myConn.Open()
[C#]
SqlConnectionnwindConn=newSqlConnection("DataSource=localhost;IntegratedSecurity=SSPI;"+
"InitialCatalog=northwind");
nwindConn.Open();
倡议利用完Connection后一直将其封闭。这可使用Connection工具的Close或Dispose办法来完成。

集成平安性和ASP.NET
SQLServer集成平安性(也称为受信托的毗连)是毗连到SQLServer的最平安的办法,由于它不在毗连字符串中公然用户标识和暗码。倡议利用该办法对毗连举行身份考证。集成平安性利用正在实行的历程确当前平安标识或标志。关于桌面使用程序,平安标识或标志一般是以后登录的用户的标识。

ASP.NET使用程序的平安标识可设置为几个分歧的选项之一。若要更好地懂得利用集成平安性毗连到SQLServer时ASP.NET使用程序所利用的平安标识,请拜见我写得Asp.net中举行平安的ADO.NET编码系列大概参考msdn

Name
Default
Description
称号
默许值
申明

ApplicationName

Thenameoftheapplication,or.NetSqlClientDataProviderifnoapplicationnameisprovided.
使用程序称号

使用程序的称号,大概“.NetSqlClientDataProvider”(假如不供应使用程序称号)。

AttachDBFilename

-or-

extendedproperties

-or-

InitialFileName

Thenameoftheprimaryfile,includingthefullpathname,ofanattachabledatabase.

Thedatabasenamemustbespecifiedwiththekeyworddatabase.
AttachDBFilename

-或-

扩大属性

-或-

初始文件名

可毗连数据库的主文件的称号,包含完全的路径名。

必需利用关头字“database”来指定命据库的称号。

ConnectTimeout

-or-

ConnectionTimeout
15
Thelengthoftime(inseconds)towaitforaconnectiontotheserverbeforeterminatingtheattemptandgeneratinganerror.
毗连超时设定

-或-

毗连超时
15
在停止实验并发生毛病之前,守候与服务器的毗连的工夫长度(以秒为单元)。

CurrentLanguage

TheSQLServerLanguagerecordname.
以后言语

SQLServer言语纪录称号。

DataSource

-or-

Server

-or-

Address

-or-

Addr

-or-

NetworkAddress

ThenameornetworkaddressoftheinstanceofSQLServertowhichtoconnect.
数据源

-或-

服务器

-或-

地点

-或-

Addr

-或-

收集地点

要毗连的SQLServer实例的称号或收集地点。

Encrypt
false
Whentrue,SQLServerusesSSLencryptionforalldatasentbetweentheclientandserveriftheserverhasacertificateinstalled.Recognizedvaluesaretrue,false,yes,andno.
加密
false
当该值为true时,假如服务器端安装了证书,则SQLServer将对一切在客户端和服务器之间传送的数据利用SSL加密。可辨认的值为true、false、yes和no。

InitialCatalog

-or-

Database

Thenameofthedatabase.
初始目次

-或-

数据库

数据库的称号。

IntegratedSecurity

-or-

Trusted_Connection
false
Whenfalse,UserIDandPasswordarespecifiedintheconnection.Whentrue,thecurrentWindowsaccountcredentialsareusedforauthentication.

Recognizedvaluesaretrue,false,yes,no,andsspi(stronglyrecommended),whichisequivalenttotrue.
集成平安性

-或-

Trusted_Connection
false
当为false时,将在毗连中指定用户ID和暗码。当为true时,将利用以后的Windows帐户凭证举行身份考证。

可辨认的值为true、false、yes、no和与true等效的sspi(激烈保举)。

NetworkLibrary

-or-

Net
dbmssocn
ThenetworklibraryusedtoestablishaconnectiontoaninstanceofSQLServer.Supportedvaluesincludedbnmpntw(NamedPipes),dbmsrpcn(Multiprotocol),dbmsadsn(AppleTalk),dbmsgnet(VIA),dbmslpcn(SharedMemory)anddbmsspxn(IPX/SPX),anddbmssocn(TCP/IP).

ThecorrespondingnetworkDLLmustbeinstalledonthesystemtowhichyouconnect.Ifyoudonotspecifyanetworkandyouusealocalserver(forexample,"."or"(local)"),sharedmemoryisused.
收集库

-或-

收集
dbmssocn
用于创建与SQLServer实例的毗连的收集库。撑持的值包含dbnmpntw(定名管道)、dbmsrpcn(多协定)、dbmsadsn(AppleTalk)、dbmsgnet(VIA)、dbmslpcn(共享内存)及dbmsspxn(IPX/SPX)和dbmssocn(TCP/IP)。

响应的收集DLL必需安装在要毗连的体系上。假如不指定收集而利用一个当地服务器(好比“.”或“(local)”),则利用共享内存。

PacketSize
8192
SizeinbytesofthenetworkpacketsusedtocommunicatewithaninstanceofSQLServer.
数据包巨细
8192
用来与SQLServer的实例举行通信的收集数据包的巨细,以字节为单元。

Password

-or-

Pwd

ThepasswordfortheSQLServeraccountloggingon(Notrecommended.Tomaintainahighlevelofsecurity,itisstronglyrecommendedthatyouusetheIntegratedSecurityorTrusted_Connectionkeywordinstead.).
暗码

-或-

Pwd

SQLServer帐户登录的暗码(倡议不要利用。为了保护第一流其余平安性,激烈倡议改用IntegratedSecurity或Trusted_Connection关头字)。

PersistSecurityInfo
false
Whensettofalseorno(stronglyrecommended),security-sensitiveinformation,suchasthepassword,isnotreturnedaspartoftheconnectioniftheconnectionisopenorhaseverbeeninanopenstate.Resettingtheconnectionstringresetsallconnectionstringvaluesincludingthepassword.Recognizedvaluesaretrue,false,yes,andno.
延续平安信息
false
当该值设置为false或no(激烈保举)时,假如毗连是翻开的大概一向处于翻开形态,那末平安敏感信息(如暗码)将不会作为毗连的一部分前往。重置毗连字符串将重置包含暗码在内的一切毗连字符串值。可辨认的值为true、false、yes和no。

UserID

TheSQLServerloginaccount(Notrecommended.Tomaintainahighlevelofsecurity,itisstronglyrecommendedthatyouusetheIntegratedSecurityorTrusted_Connectionkeywordinstead.).
用户ID

SQLServer登录帐户(倡议不要利用。为了保护第一流其余平安性,激烈倡议改用IntegratedSecurity或Trusted_Connection关头字)。

WorkstationID
thelocalcomputername
ThenameoftheworkstationconnectingtoSQLServer.
事情站ID
当地盘算机称号
毗连到SQLServer的事情站的称号。




Name
Default
Description
称号
默许值
申明

ConnectionLifetime
0
Whenaconnectionisreturnedtothepool,itscreationtimeiscomparedwiththecurrenttime,andtheconnectionisdestroyedifthattimespan(inseconds)exceedsthevaluespecifiedbyConnectionLifetime.Thisisusefulinclusteredconfigurationstoforceloadbalancingbetweenarunningserverandaserverjustbroughtonline.

Avalueofzero(0)causespooledconnectionstohavethemaximumconnectiontimeout.
毗连保存期
0
当毗连被前往到池时,将其创立工夫与以后工夫作对照,假如工夫长度(以秒为单元)超越了由ConnectionLifetime指定的值,该毗连就会被烧毁。这在会萃设置中很有效(用于强迫实行运转中的服务器和刚置于联机形态的服务器之间的负载均衡)。

零(0)值将使池毗连具有最年夜的毗连超时。

ConnectionReset
true
Determineswhetherthedatabaseconnectionisresetwhenbeingdrawnfromthepool.ForMicrosoftSQLServerversion7.0,settingtofalseavoidsmakinganadditionalserverroundtripwhenobtainingaconnection,butyoumustbeawarethattheconnectionstate,suchasdatabasecontext,isnotbeingreset.
毗连重置
true
断定从池中提取数据库毗连时是不是重置数据库毗连。关于MicrosoftSQLServer7.0版,设置为false可制止猎取毗连时再有一次分外的服务器往复路程,但须注重此时并未重置毗连形态(如数据库高低文)。

Enlist
true
Whentrue,thepoolerautomaticallyenliststheconnectioninthecreationthreadscurrenttransactioncontext.Recognizedvaluesaretrue,false,yes,andno.
挂号
true
当该值为true时,池程序在创立线程确当前事件高低文中主动挂号毗连。可辨认的值为true、false、yes和no。

MaxPoolSize
100
Themaximumnumberofconnectionsallowedinthepool.
最年夜池巨细
100
池中同意的最年夜毗连数。

MinPoolSize
0
Theminimumnumberofconnectionsallowedinthepool.
最小池巨细
0
池中同意的最小毗连数。

Pooling
true
Whentrue,theSQLConnectionobjectisdrawnfromtheappropriatepool,orifnecessary,iscreatedandaddedtotheappropriatepool.Recognizedvaluesaretrue,false,yes,andno.

true
当该值为true时,体系将从响应池中提取SQLConnection工具,或在需要时创立该工具并将其增加到响应池中。可辨认的值为true、false、yes和no。
不过你如果学.net的话,你就不要选os了,这课比较底层的。你可以旁听数据库加上软件构件和中间件。(webservices和面向服务的课也应该听一听)
作者: 金色的骷髅    时间: 2015-1-19 19:40
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
作者: 飘飘悠悠    时间: 2015-1-25 16:04
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
作者: 柔情似水    时间: 2015-2-3 06:32
在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?
作者: 简单生活    时间: 2015-2-8 19:57
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
作者: 飘灵儿    时间: 2015-2-26 01:14
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
作者: 再现理想    时间: 2015-3-8 11:11
对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。
作者: 第二个灵魂    时间: 2015-3-15 22:24
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。
作者: 愤怒的大鸟    时间: 2015-3-22 17:08
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2