日期:2009-12-21 浏览次数:20917 次
经过长时间学习ASP.NETWeb,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。学习ASP.NETWeb时,你可能会遇到相关问题,这里将介绍ASP.NETWeb问题的解决方法。
该结构分三个层次:表示层、业务层、数据层。数据层:代表物理数据库。业务层:负责数据层与表示层之间的数据传输。表示层:应用程序的客户端,它通过业务层来访问数据库。
表示层所操作的是驻留在内存中的本地数据,当需要更新数据库数据时,要通过业务层提供的更新方法实现。这样可以大大提高应用程序的性能,而且,什么时候更新数据完全由你决定,提高了编程的灵活性。
实例:
这里我们具体做一个实例来看看如何用VB.NET创建三层结构的应用程序。
数据库:我们选择SQLSERVER的NorthWind数据库。业务层:我们创建一个WebService作为中间层。(需要安装IIS服务)表示层:ASP.NETWeb我们写一个WindowsForm第一步:创建WebService。
具体步骤如下:
1.新建一个项目,选择ASP.NETWeb服务,命名为:”WebServiceFor业务层”。
2.添加两个SqlDataAdapter,一个为Customer_da,它指向NorthWind数据库的Customers表,ASP.NETWeb另一个为Order_da,指向Northwind数据库的Orders表。
3.然后生成一个TypedDataSet(选择“数据”菜单的“生成数据集”),命名为:Super_ds.
4.数据库连接已经完成,下一步我们将考虑它与表示层之间的通信,这里我们定义两个方法。一个为:Get_DataSet,它返回一个Super_ds类型的数据集,另一个为:Update_DataSet,它负责更新数据库数据,方法代码如下:
ImportsSystem.Web.Services PublicClassService1 InheritsSystem.Web.Services.WebService ‘WebServicesDesignerGeneratedCode……. <WebMethod()>PublicFunctionGet_Dataset()Assuper_ds customer_da.Fill(Super_ds1.Customers) order_da.Fill(Super_ds1.Orders) ReturnSuper_ds1 EndFunction <WebMethod()>PublicSubUpdate_Dataset() Super_ds1.AcceptChanges() EndSub WEBSERVICEEXAMPLE TheHelloWorld()exampleservicereturnsthestringHelloWorld. Tobuild,uncommentthefollowinglinesthensaveandbuildtheproject. Totestthiswebservice,ensurethatthe.asmxfileisthestartpage andpressF5. <WebMethod()>PublicFunctionHelloWorld()AsString elloWorld="HelloWorld" EndFunction EndClass '日期转换星座函数,参数是日期型
function astro(birth)
astro=""
if birth="" or not isdate(birth) Then exit function
birthmonth=month(birth) : if birthmonth<10 then birthmonth="0" & birthmonth
birthday=day(birth) : if birthday<10 then birthday="0" & birthday
birth=trim(birthmonth & birthday) '重整月日,0903型
rAstro=split("水瓶座*0120*0219#双鱼座*0220*0320#白羊座*0321*0420#金牛座*0421*0521#双子座*0522*0621#巨蟹座*0622*0722#狮子座*0723*0823#处女座*0824*0923#天秤座*0924*1023#天蝎座*1024*1122#射手座*1123*1222#摩蝎座*1222*0119#","#")
astro="摩蝎座" '这个是跨年的,不好对比,先默认
for i_ls=0 to ubound(rAstro)-2
rls2=split(rAstro(i_ls) & "*","*")
if birth>=rls2(1) and birth<=rls2(2) then
astro=rls2(0)
exit for
end if
next
end function