仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 610|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页编程之VS2005中利用强范例DataSet简化开辟

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:34:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
以前很热炒跨平台,主要是由于硅谷挑战微软霸主地位的热情,但是冷静下来后,跨平台往往不是那么一回事。假设你有个软件,所谓的跨平台,你只需要为第二个平台上重新编译一次就行了,这样很难么?  在一样平常开辟中,为了编写数据的增添、更新、修正、删除等功效而不能不面临单调的代码,做反复又反复的事情。.NET2.0正式版的公布,对我们程序开辟职员来讲无疑是一件很年夜的丧事,VisualStudio2005的一些新的加强功效和ADO.NET2.0的新特征让我们开辟高可伸缩的多层数据库使用程序加倍复杂和快速。

  在.NET1.1下就能够利用强范例数据集,但是在VisualStudio2003里开辟起来仍是有一些不便利,在VisualStudio2005里对DataSet的计划视图做了很年夜的改善,由于ADO.NET2.0增添了TableAdapter工具,以是如今也能够在DataSet计划视图里增加DataTable的表适配器。之前的typedDataSets只是一些数据实体(哑工具,只要属性的类)的汇合,其实不能很便利的自我办理耐久化,和数据完全性考证等。如今能够很便利的完成这些。

  下边经由过程一个例子来具体先容怎样经由过程vs2005来天生强范例DataSet简化开辟流程,天生可伸缩性的多层数据库使用程序。

  起首新创建一个Web网站项目,在[办理计划资本办理器]→[增加新项]→[数据集],定名为Authors.xsd,因为强范例DataSet必要放到App_Code目次,假如此时项目文件中没有App_Code目次,IDE会提醒是不是创立,我们选择"是"便可。

  此时IDE会主动翻开我们方才创建好的Authors.xsd文件,而且入手下手运转TableAdapter设置导游,假如Web.Config没无数据库保持字符串,此时我们必要新创建一个毗连:选择[新建保持]→[MicrosoftSQLServer]→[选择体系自带的pubs数据库]→[将新创建的保持字符串保留到使用程序设置文件中]。

  在接上去的选择命令范例的时分,IDE出来三个选项来供用户选择会见呢数据库的情势:

  1、利用SQL语句,假如是单个表,导游能够主动天生Insert,Update和Delete语句。本例子也是利用的这类办法。

  2、创立新的存储历程。一样假如是单个表,导游能够主动天生Insert,Update和Delete语句。

  3、利用现有存储历程。必要为每个命令选择响应的现有存储历程。

  我们这里选择[利用SQL语句]→[查询天生器]→[authors表,选择一切列],此时查询天生器会主动给我们天生SQL语句(SELECTauthors.*FROMauthors)。[初级选项],能够选择是不是天生Insert,Update和Delete语句,利用开放式并发来避免并发抵触,革新数据表,用来考证Insert和Update语句,为了可以更明晰的先容利用办法,我们这里全体都不选择,而让我们今后依据必要自行增加。[选择要天生的办法],我们只必要利用[前往DataTable],其他的选项的对号往失落。

  此时创立导游会主动给我们天生"Select语句","数据表的映照",和"Get办法"。我们创立的历程就停止了。这是我们发明DataSet.xsd会主动天生一个authors表和一个包括Get办法的数据集authorsTableAdapter。

  一样,在我们创建好的数据表[authorsTableAdapter]右键→增加查询,参照上边的办法天生DeleteQuery(删除),InsertQuery(增添),UpdateQuery(更新)、SelectDetail(前往具体了局,利用Select(前往行)选项,天生一个只包含一条数据的数据集)和ScalarQuery(前往数据统计)。

  以下是天生的SQL语句,必要手工修正成本人必要的代码:

DeleteQuery:DELETEFROM[authors]WHERE([au_id]=@Original_au_id)
InsertQuery:INSERTintoauthors(au_lname,au_fname,phone,address,city,state,zip,contract)values(@au_lname,@au_fname,@phone,@address,@city,@state,@zip,@contract)

UpdateQuery:UPDATEauthorssetau_lname=@au_lname,au_fname=@au_fname,phone=@phone,
address=@address,city=@city,state=@state,zip=@zip,contract=@contractwhereau_id=@au_id

SelectDetail:SELECTauthors.*FROMauthorswhereau_id=@au_id

ScalarQuery:SELECTCOUNT(*)FROMauthors
  翻开Default.aspx,并增加一个GridView控件,而且增加一个ObjectDataSource控件,设置ObjecctDataSource的数据源,此时我们会发明在设置的时分体系已认出来我们方才创建的强范例DataSet了,[选择营业工具]→[authorsTableAdapters.authorstableAdapter]→[界说数据办法]分离选择Select,Update,Insert,Delete的办法,即我们方才创建的DeleteQuery,InsertQuery,UpdateQuery,SelectDetail,ScalarQuery和体系天生的GetDate]。此时设置ObejctDataSource就竣工了。
<P>  把GridView的DataSourceID设置成ObjectDataSource,此时我们就已创建好了完全的一个数据编纂功效。看是否是很复杂。

  固然,我们在举行企业开辟的时分,更习气于在背景编纂,如今我就给出在背景举行手工编纂的代码:

//数据绑定部分
if(!Page.IsPostBack)
{
 authorsTableAdapters.authorsTableAdapterta=newauthorsTableAdapters.authorsTableAdapter();
 //authorsTableAdapter就是我们创建的强范例的
 GridView1.DataSource=ta.GetData();
 GridView1.DataBind();
}
//删除数据
protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse)
{
 authorsTableAdapters.authorsTableAdapterta=newauthorsTableAdapters.authorsTableAdapter();
 ta.DeleteQuery(GridView1.DataKeys[e.RowIndex].Value);
}
//前往单条数据
authorsTableAdapters.authorsTableAdapterta=newauthorsTableAdapters.authorsTableAdapter();
DataTabledt=ta.SelectDetail(Request.QueryString["id"].ToString());
if(dt.Rows.Count>0)
 Response.Write(dt.Rows[0]["address"].ToString());
//前往数据统计
authorsTableAdapters.authorsTableAdapterta=newauthorsTableAdapters.authorsTableAdapter();
Response.Write(ta.ScalarQuery().ToString());
  至此,我们不难发明,2005给我们的开辟供应了奔腾性的改动。我们能够经由过程强范例数据集很便利疾速的举行多层构架开辟,而且进步开辟速率。
我见过java运行在手机上,包括很廉价的山寨手机,但是却暂时没发现.net在手机上有什么作为。wp7可能是个转机,但是按照《Java的跨平台就是一句谎言。那.net的跨平台也当之无愧是一句谎言。
再见西城 该用户已被删除
沙发
发表于 2015-1-19 17:01:38 | 只看该作者
目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
admin 该用户已被删除
板凳
发表于 2015-1-25 17:16:17 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-3 12:01:19 | 只看该作者
ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。
乐观 该用户已被删除
5#
发表于 2015-2-8 20:45:08 | 只看该作者
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。
海妖 该用户已被删除
6#
发表于 2015-2-26 09:36:09 | 只看该作者
Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
只想知道 该用户已被删除
7#
发表于 2015-3-8 13:15:37 | 只看该作者
这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。
蒙在股里 该用户已被删除
8#
发表于 2015-3-16 01:16:54 | 只看该作者
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
金色的骷髅 该用户已被删除
9#
发表于 2015-3-22 18:15:59 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-10 05:57

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表