逍遥一派 发表于 2015-1-16 22:31:32

ASP网站制作之ADO 2.6 vs. the ADO.NET

大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧ADO2.6vs.theADO.NET
在本例中我们必要IIS5情况、VisualStudio.NETBETA1、另有SQLSERVER中的Northwind数据库
在.NET中,坚持了对新近COM及基于COM手艺的优秀撑持,在本例中供应了两种办法:GetCustomersOld()利用了ADO2.6;GetCustomersNew()利用ADO.NET,能够对照。

namespacePROINFO.WebService.Data
{
usingSystem;
usingSystem.Collections;
usingSystem.Configuration;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Data.SQL;
usingSystem.Diagnostics;
usingSystem.Web;
usingSystem.Web.Services;
///<summary>
///SummarydescriptionforWS.
///</summary>
publicclassWS:System.Web.Services.WebService
{
publicWS()
{
//CODEGEN:ThiscallisrequiredbytheASP+WebServicesDesigner
InitializeComponent();
}
///<summary>
///RequiredmethodforDesignersupport-donotmodify
///thecontentsofthismethodwiththecodeeditor.
///</summary>
privatevoidInitializeComponent()
{
}
///<summary>
///Cleanupanyresourcesbeingused.
///</summary>
publicoverridevoidDispose()
{
}

//Herestartstheexamplecode
publicstructsCustomers
{
publicStringsCustomerID;
publicStringsCompanyName;
publicStringsContactName;
publicStringsContactTitle;
publicStringsAddress;
publicStringsCity;
publicStringsRegion;
publicStringsPostalCode;
publicStringsCountry;
publicStringsPhone;
publicStringsFax;
}


publicsCustomers[]GetCustomersOld()
{
ADODB.Connectioncn=newADODB.Connection();
ADODB.Recordsetrs=newADODB.Recordset();
StringstrSQL;
intintRC;
intintCnt;
strSQL="SELECT*FROMCustomers";
cn.Open("Provider=SQLOLEDB;DataSource=SERVER;InitialCatalog=Northwind;","sa",null,0);
rs.Open(strSQL,cn,ADODB.CursorTypeEnum.adOpenStatic,ADODB.LockTypeEnum.adLockReadOnly,0);
intRC=rs.RecordCount;
if(intRC<1)
{
returnnull;
}
sCustomers[]c=newsCustomers;
rs.MoveFirst();
intCnt=0;

while(!rs.EOF)
{
c.sCustomerID=rs.Fields["CustomerID"].Value.ToString();
c.sCompanyName=rs.Fields["CompanyName"].Value.ToString();
c.sContactName=rs.Fields["ContactName"].Value.ToString();
c.sContactTitle=rs.Fields["ContactTitle"].Value.ToString();
c.sAddress=rs.Fields["Address"].Value.ToString();
c.sCity=rs.Fields["City"].Value.ToString();
c.sRegion=rs.Fields["Region"].Value.ToString();
c.sPostalCode=rs.Fields["PostalCode"].Value.ToString();
c.sCountry=rs.Fields["Country"].Value.ToString();
c.sPhone=rs.Fields["Phone"].Value.ToString();
c.sFax=rs.Fields["Fax"].Value.ToString();
rs.MoveNext();
intCnt++;
}
returnc;
}


publicDataSetGetCustomersNew()
{
DataSetds=newDataSet();
SQLConnectioncn=newSQLConnection("localhost","sa","","Northwind");
cn.Open();
SQLDataSetCommandcm=newSQLDataSetCommand("SELECT*FROMCustomers",cn);
cm.FillDataSet(ds,"Customers");
returnds;
}
}
}减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。

精灵巫婆 发表于 2015-1-19 16:09:16

作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。

兰色精灵 发表于 2015-1-26 22:34:59

那么,ASP.Net有哪些改进呢?

柔情似水 发表于 2015-2-4 21:29:19

我想问如何掌握学习节奏(先学什么再学什么)最好详细点?

爱飞 发表于 2015-2-10 15:00:23

封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。

飘灵儿 发表于 2015-3-1 13:35:02

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

只想知道 发表于 2015-3-10 17:47:37

接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。

仓酷云 发表于 2015-3-17 09:09:52

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

分手快乐 发表于 2015-3-24 05:12:01

他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
页: [1]
查看完整版本: ASP网站制作之ADO 2.6 vs. the ADO.NET