仓酷云

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

[学习教程] ASP.NET网页编程之ASP.NET2.0数据操纵之创立数据会见层(2...

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

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

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

x
归根到底,Java跨平台可以,但是要重新编写代码,否则还分什么J2EE/J2SE/J2ME呢!asp.net|创立|会见|数据  这最初一个复选框,“天生DB间接办法(GenerateDBDirectMethods)”,假如选了的话,会为TableAdapter主动生成Insert(),Update(),和Delete()办法。假如你不选这个选项的话,一切的更新都必要经由过程TableAdapter独一的Update()办法来完成,该办法承受一个强范例的DataSet,大概一个DataTable,大概单个DataRow,大概一个DataRow数组。(假设你在所示的初级属性里把“天生增加,更新和删除语句”的选项往失落的话,这个复选框是不起感化的)。让我们保存这个复选框的选项。


1:把办法名字从GetData改成GetProducts

  按“完成”按钮停止导游。在导游封闭后,我们回到DataSet计划器中,它会显现我们刚创立的DataTable。你可以看到ProductsDataTable的字段列单(ProductID,ProductName等),另有ProductsTableAdapter的Fill()和GetProducts()办法。


2:ProductsDataTable和ProductsTableAdapter被增加到强类型DataSet中

  至此,我们天生了含有单一DataTable类(Northwind.Products)的强范例DataSet和一个含有GetProducts()办法的强类型DataAdapter类(NorthwindTableAdapters.ProductsTableAdapter)。经由过程这些工具能够用下列编码来猎取一切产物的列单:


C#
  1. 1234567
复制代码
  1. NorthwindTableAdapters.ProductsTableAdapterproductsAdapter=newNorthwindTableAdapters.ProductsTableAdapter();Northwind.ProductsDataTableproducts;products=productsAdapter.GetProducts();foreach(Northwind.ProductsRowproductRowinproducts)Response.Write("Product:"+productRow.ProductName+"<br/>");
复制代码
  这段编码不请求我们写一行的跟数据会见有关的编码。我们不必要天生任何ADO.NET类的实例,我们不必要指明任何毗连字符串,任何SQL查询语句,大概任何存储历程。TableAdapter为我们供应了底层的数据会见编码!

  这个例子里的每一个工具都是强范例的,同意VisualStudio供应IntelliSense匡助和编译时范例反省。最棒的是,从TableAdapter前往的DataTable能够间接绑定到ASP.NET数据Web控件上往,如许的控件包括GridView,DetailsView,DropDownList,CheckBoxList,和别的几个控件。上面这个例子树模只需在Page_Load事务处置函数里增加短短的三行编码就可以将从GetProducts()办法返回的DataTable绑定到一个GridView上往。

  AllProducts.aspx


ASP.NET
  1. 1234567891011121314151617181920212223242526
复制代码
  1. <%@PageLanguage="C#"AutoEventWireup="true"CodeFile="AllProducts.aspx.cs"Inherits="AllProducts"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><title>ViewAllProductsinaGridView</title><linkhref="Styles.CSS"rel="stylesheet"type="text/css"/></head><body><formid="form1"runat="server"><div><h1>AllProducts</h1><p><asp:GridViewID="GridView1"runat="server"CssClass="DataWebControlStyle"><HeaderStyleCssClass="HeaderStyle"/><AlternatingRowStyleCssClass="AlternatingRowStyle"/></asp:GridView></p></div></form></body></html>
复制代码
  AllProducts.aspx.cs


C#
  1. 12345678910111213141516171819202122
复制代码
  1. usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingNorthwindTableAdapters;publicpartialclassAllProducts:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){ProductsTableAdapterproductsAdapter=newProductsTableAdapter();GridView1.DataSource=productsAdapter.GetProducts();GridView1.DataBind();}}
复制代码

3:显现在GridView里的产物列单

  这个例子请求我们在ASP.NET网页的Page_Load事务处置函数里,写三行编码。在今后的教程里,我们将讨论利用ObjectDataSource,用声明的体例来从DAL中猎取数据。用ObjectDataSource的话,我们一行编码都不用写,并且还能失掉分页和排序撑持呢!
  第三步:给数据会见层增加参数化的办法

  至此,ProductsTableAdapter只要一个办法,GetProducts(),它前往数据库里的一切产物。可以操纵一切的产物固然有效,但良多时分我们想要猎取关于一个指定产物的信息,大概属于某个特定分类的一切产物。要想给我们的数据会见层增加如许的功效,我们能够给TableAdapter增加参数化的办法。

  让我们来增加一个GetProductsByCategoryID(categoryID)办法。为给DAL增加新的办法,让我们回到DataSet计划器,在ProductsTableAdapter上按右鼠标,然后选择“增加查询(AddQuery)”。


4:在TableAdapter上按右鼠标,选择“增加查询”

  导游起首会问我们是不是要经由过程一个ad-hocSQL语句仍是天生一个新存储历程大概利用现有存储历程来会见数据库。让我们仍是选择利用SQL语句。接着,导游会问我们利用甚么范例的SQL查询。由于我们想前往属于指定分类的一切产物,我们必要写一个前往数据行的SELECT语句。


5:选择天生一个前往数据行的SELECT语句

  下一步是界说用于会见数据的SQL查询语句。由于我们只想前往属于指定分类的那些产物,我重用GetProducts()里的SELECT语句,但增加了一个WHERE子句:WHERECategoryID=@CategoryID。个中的@CategoryID参数向TableAdapter设置导游暗示我们正在天生的办法将必要一个对应类(即,可为null-nullable的整数)的输出参数。


6:输出一个只前往指定分类的产物的查询

  在最初一步,我们能够选择利用何种数据会见形式,还能够定制天生的办法的名字。对应于Fill形式,让我们把名字改成FillByCategoryID,对前往DataTable形式的办法(GetX办法),让我们来用GetProductsByCategoryID这个名字。


7:为TableAdapter的办法选择名字

  在停止导游后,DataSet计划器包括了这些新的TableAdapter的办法。


8:经由过程分类来查询产物

  花点工夫用一样的伎俩增加一个GetProductByProductID(productID)办法。

  这些参数化的查询能够在DataSet计划器里间接测试。在TableAdapter中的办法上按右鼠标,然后选择“预览数据(PreviewData)”。接着,输出对应参数的值,然后按“预览(Preview)”。


9:属于饮料(Beverages)类的那些产物列单

  经由过程我们的DAL中的GetProductsByCategoryID(categoryID)办法,我们就可以计划一个ASP.NET网页来显现属于指定分类的那些产物。上面这个例子显现了属于Beverages(饮料)类(CategoryID=1)的一切产物。

  Beverages.aspx


ASP.NET
  1. 123456789101112131415161718192021222324
复制代码
  1. <%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Beverages.aspx.cs"Inherits="Beverages"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><title>UntitledPage</title><linkhref="Styles.css"rel="stylesheet"type="text/css"/></head><body><formid="form1"runat="server"><div><h1>Beverages</h1><p><asp:GridViewID="GridView1"runat="server"CssClass="DataWebControlStyle"><HeaderStyleCssClass="HeaderStyle"/><AlternatingRowStyleCssClass="AlternatingRowStyle"/></asp:GridView></p></div></form></body></html>
复制代码
  Beverages.aspx.cs


C#
  1. 1234567891011121314151617181920212223
复制代码
  1. usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingNorthwindTableAdapters;publicpartialclassBeverages:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){ProductsTableAdapterproductsAdapter=newProductsTableAdapter();GridView1.DataSource=productsAdapter.GetProductsByCategoryID(1);GridView1.DataBind();}}
复制代码

0:属于Beverages(饮料)类的一切产物显现
呵呵,那你就关注微软的招聘信息以及别人的招聘经验啊,还有也不一定去做技术的,你如果真的想去就多了解了解。(其实我的意思是说想到微软做技术是很不容易的。
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-19 21:42:08 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
山那边是海 该用户已被删除
板凳
发表于 2015-1-25 16:02:46 来自手机 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。
爱飞 该用户已被删除
地板
发表于 2015-2-3 05:48:35 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
小女巫 该用户已被删除
5#
发表于 2015-2-8 19:50:59 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
兰色精灵 该用户已被删除
6#
发表于 2015-2-25 23:44:44 | 只看该作者
JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
admin 该用户已被删除
7#
发表于 2015-3-8 10:33:50 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
老尸 该用户已被删除
8#
发表于 2015-3-15 22:07:51 | 只看该作者
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
精灵巫婆 该用户已被删除
9#
发表于 2015-3-22 06:08:15 | 只看该作者
对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。
柔情似水 该用户已被删除
10#
发表于 2015-3-22 06:08:15 | 只看该作者
现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-11 17:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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