网络安全 频道

ASP.NET2.0+SQL Server2005构建多层应用


  再点选"NEXT",进入下一个窗口,会询问采用哪一个存储过程,如下图:


  这里,我们选择使用"GetAuthors"这个存储过程,再选"next"进入下一步,如下图:


图6


  在这里,我们要指定使用GetAuthors存储过程的哪一个方法用来返回数据集,我们选择"return a datatable"的选现,并指定使用其中的GetAuthors方法,以datatable的形式返回。继续选"next",出现如下窗口,则系统自动会生成数据访问层了。

ASP.NET2.0+SQLServer2005构建多层应用(4)
图7

  当你点击"Finish"按钮后,Visual Studio 会自动产生一些类,当这些类产生后,我们将类改名为Authors,这样,最后输出如下图所示:


图8


  接下来,我们按上面的步骤,类似地,使用"TableAdapter"向导,选择工具菜单栏的"Data-Add-TableAdapter",再次增加一个tableadapter,这次选择的是"GetTitlesByAuthor"存储过程,而选择返回的方法是"GetTitlesByAuthor",其他步骤和生成"GetAuthos"的一样,最后,将产生的类的名改为"AuthorTitles",如下图所示


图9

创建逻辑层

  接下来,我们创建逻辑层,在这个例子中,逻辑层是十分简单的,只是起到说明作用。首先,我们新建一个类AuthroBiz类,并将其放在App_code文件夹中,并将类的代码修改如下:

public class AuthorsBiz
{
 public AuthorsBiz()
 {}

 public DataTable GetAuthors()
 {
  AuthorsTableAdapters.AuthorsTableAdapter authorDB = new AuthorsTableAdapters.AuthorsTableAdapter();
  return authorDB.GetAuthors();
 }
 public DataTable GetAuthorTitles(string authorID)
 {
  AuthorsTableAdapters.AuthorTitlesTableAdapter authorDB = new AuthorsTableAdapters.AuthorTitlesTableAdapter();
  return authorDB.GetTitlesByAuthor(authorID);
 }
}


  从上面的代码中,可以看到,我们刚才通过向导创建的"Authors.xsd"类型化dataset类,现在在代码中,可以通过使用AuthorsTableAdapters类来调用,其中authorDB是AuthorsTableAdapters类的实例。

  创建表示层

  在ASP.NET 2.0中,在创建表示层时,可以使用master-page技术,使得可以很方便地构建页面。Mater-page的意思是,可以首先构建出一个页面的主框架模版结构,然后在其中放置一个ContentPlaceHolder控件,在该控件中,将展现其他子页面的内容。在其他子页面中,只需要首先引用该master页面,然后再修改ContentPlaceHolder控件的内容就可以了。

  首先,在工程中新增加一个"master"类型的文件,将其命名为CommonMaster,然后输入以下代码:

<%@ master language="C#" %>
<html>
 <head id="Head1" runat="server">
  <title>Master Page</title>
 </head>
<body>
<form id="Form1" runat="server">
 <table id="header" style="WIDTH: 100%; HEIGHT: 80px" cellspacing="1" cellpadding="1" border="1">
 <tr>
  <td style="TEXT-ALIGN: center; width: 100%; height: 74px;" bgcolor="teal">
   <asp:label runat="server" id="Header" Font-Size="12pt" Font-Bold="True">
     Authors Information
   </asp:label>
  </td>
 </tr>
 </table>
 <b/>
 <table id="leftNav" style="WIDTH: 108px; HEIGHT: 100%" cellspacing="1" cellpadding="1" border="1">
 <tr>
  <td style="WIDTH: 100px">
   <table>
    <tr>
     <td>
      <a href="Home.aspx">Home</a>
     </td>
    </tr>
    <tr>
     <td>
      <a href="Authors.aspx">Authors List</a>
     </td>
    </tr>
   </table>
  </td>
 </tr>
 </table>
 <table id="mainBody" style="LEFT: 120px; VERTICAL-ALIGN: top; WIDTH: 848px; POSITION: absolute; TOP: 94px; HEIGHT: 100%" border="1">
  <tr>
   <td width="100%" style="VERTICAL-ALIGN: top">
    <asp:contentplaceholder id="middleContent" runat="Server"></asp:contentplaceholder>
   </td>
  </tr>
 </table>
</form>
</body>
</html>

0
相关文章