网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.NET 2.0:AdventureWorks系统分析

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/13

    ASP.NET 2.0:AdventureWorks贸易系统分析

    AdventureWorks贸易系统是一个使用N层架构和ASP.NET 2.0技术创建的Web站点。该站点实现了贸易系统的部分功能。在实现过程中重点使用了一些集成可重用组件,这应该是大家阅读的重点所在。本系列文章包括3篇,第一篇简单介绍一下系统概况和数据库设计,第二篇讲解数据访问层的实现,第三篇说明构建Web站点的方法。通过这些内容,读者将学习和实践多方面的知识,例如N层架构应用、使用数据访问应用程序块创建数据访问层、使用泛型集合实现数据绑定、使用企业库的异常处理块统一处理异常、母版页应用等等。

  1. 业务过程

   AdventureWorks贸易系统实现了贸易系统的部分功能,例如产品类别的显示等等。有关该系统的功能,读者可通过下面所描述的业务过程来了解。AdventureWorks系统的业务过程包括:

   产品类别显示过程:该过程允许用户显示AdventureWorks数据库中包括的所有类别。用户可单击所显示类别列表中的特定类别,以便显示所有相关的子类别。

   产品子类别显示过程:在获得类别列表后,接着可以显示所选中类别的所有子类别。

   产品显示过程:通过这个过程,可显示每个子类别中的产品列表。单击特定子类别可获取该产品子类别包括的产品列表。

   正如读者看到的,这些过程非常简单,因为本实例主要关注的是集成可重用组件,例如数据访问块,异常管理块,将数据库表转换为对象的泛型转换,创建和利用过程等。下面介绍一下系统架构方面的内容。

   2. 系统架构

   图1说明了贸易系统的架构。
   
  


   


    3. 数据库设计

    既然大家已经了解了包括的业务过程,那么下面将讲解实现解决方案所需的各个构造块。为达到本实例目的,实例余下部分的讨论将分为:(1)数据库设计;(2)实现CLR过程;(3)实现数据访问和业务逻辑组件;(4)实现Web站点。下面首先介绍数据库方面的设计。

    本实例使用的AdventureWorks数据库包括多个表,但是该实例仅使用了其中的三个表:ProductCategory、ProductSubcategory和Product。以下说明表的结构,首先是ProductCategory表。

   

    ProductSubcategory表定义如下。



    下表说明了Product表的结构。




     下一步是说明创建操作这些结构的存储过程。    

    4.实现CLR存储过程

    SQL Server 2005最优雅的功能之一是集成.NET CLR。集成CLR的SQL Server在多个重要的方面扩展了SQL Server功能。利用这种集成可创建数据库对象(例如存储过程),用户定义函数,以及使用现代面向对象语言(例如VB.NET和)创建触发器。为达成本实例目的,将说明使用创建存储过程的方法。

    首先,在Visual Studio 2005中,以Visual Studio 2005作为编程语言创建一个新的名为AdventureWorksDatabaseObjects的SQL Server项目。由于创建的是数据库项目,所以需要关联数据源与项目。在创建项目的同时,Visual Studio将要求开发人员要么选择现有数据库引用,要么添加新数据库引用。选择AdventureWorks作为数据库。一旦创建项目,则在项目菜单中选择添加存储过程选项。在添加新项对话框中,输入StoredProcedures.cs,接着单击添加按钮。在创建类之后,可根据以下内容修改类中代码。

    示例1:实现CLR存储过程

   

 using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;

public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void GetProductCategories()
{
using (SqlConnection connection = new SqlConnection("context connection=true"))
{
connection.Open();
string sqlCommand = "Select ProductCategoryID, Name, rowguid, " +
" ModifiedDate from Production.ProductCategory";
SqlCommand command = new SqlCommand(sqlCommand, connection);
SqlDataReader reader = command.ExecuteReader();
SqlContext.Pipe.Send(reader);
}
}

[Microsoft.SqlServer.Server.SqlProcedure]
public static void GetProductSubcategories(int productCategoryID)
{
using (SqlConnection connection = new SqlConnection("context connection=true"))
{
connection.Open();
string sqlCommand = "Select ProductSubcategoryID, ProductCategoryID, Name," + "rowguid, ModifiedDate from Production.ProductSubcategory " + "Where ProductCategoryID = " + productCategoryID;
SqlCommand command = new SqlCommand(sqlCommand, connection);
SqlDataReader reader = command.ExecuteReader();
SqlContext.Pipe.Send(reader);
}
}

[Microsoft.SqlServer.Server.SqlProcedure]
public static void GetProducts(int productSubcategoryID)
{
using (SqlConnection connection = new SqlConnection("context connection=true"))
{
connection.Open();
string sqlCommand = "Select ProductID, Name, ProductNumber,MakeFlag, " + "FinishedGoodsFlag, Color, SafetyStockLevel, ReorderPoint,StandardCost, " + "ListPrice, Size, SizeUnitMeasureCode, WeightUnitMeasureCode," + "Weight,DaysToManufacture, ProductLine,Class, Style, " + "ProductSubcategoryID, ProductModelID,SellStartDate,SellEndDate," + "DiscontinuedDate, rowguid, ModifiedDate from Production.Product " + "Where ProductSubcategoryID = " + productSubcategoryID.ToString();
SqlCommand command = new SqlCommand(sqlCommand, connection);
SqlDataReader reader = command.ExecuteReader();
SqlContext.Pipe.Send(reader);
}
}
};

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号