| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
用ASP.NET 2.0设计网络在线投票系统
作者:未知    文章来源:网络    点击数:    更新时间:2006-6-23
   一、系统功能设计和数据库设计

  1、系统功能设计和数据库设计

  1.1 系统功能设计

  网络在线投票系统实现的功能比较简单,具体如下:

  ◎投票项目的管理;

  ◎添加投票的项目;

  ◎删除投票的项目;

  ◎对项目进行投票;

  ◎查看项目的投票情况。

  1.2 数据库设计

  本系统的数据库设计比较简单,只需要存储投票的信息即可。在SQL Server 2000中创建一个数据库,名称为“WebVoteDB”,并在该数据库中创建投票项目表Votes。其中“VoteID”字段存储投票项目ID;“Item”字段存储投票项目的名称;“VoteCount”字段存储每个项目的票数。创建投票项目表Votes的操作界面如图1所示。

  投票项目表Votes需要存储投票项目名称及其票数,表的字段说明如表1所示。


图1 创建投票项目表Votes的操作界面

表1 Votes表

字 段 名

数 据 类 型

字 段 说 明

键 引 用

备 注
TreeID int 投票项目ID PK 主键(自动增一)
Item varchar(200)
投票项目的名称
 

VoteCount

int

票数
 

  在线投票功能是网站应用程序最常用的功能之一,也是网站应用程序开发常用的功能模块。当网站的管理员或用户提出一些新的想法与建议或者出现一种新产品时,他们可能需要通过用户或者客户的投票方式来确定这些新的想法、建议或者新的产品是否满足用户或者客户的需求,另外,网站还可以通过网站在线投票功能做一些实际性的调查工作。本章介绍的网络在线投票系统还以直观的图形化界面显示投票信息,而且还可以及时查看投票的情况。

  二、投票系统实现

  创建好系统所需要的数据库之后,网络在线投票系统的具体实现可以分为下面3个部分:

  (1)存储过程的实现部分;

  (2)数据库访问层的实现部分;

  (3)功能页面的实现部分。

  下面将详细介绍上述3个部分的具体实现方法。首先在Microsoft Visual Studio .NET 2005中创建一个Web站点,名称为“WebVote”。

  2.1 存储过程设计

  在数据库WebVoteDB中创建存储过程Pr_GetVotes、Pr_GetSingleVote、Pr_AddVote、Pr_UpdateVote和Pr_DeleteVote。其中:

  Pr_GetVotes 从投票项目表Votes中获取所有投票项目的信息;

  Pr_GetSingleVote 从投票项目表Votes中获取某一条投票项目的信息;

  Pr_AddVote 添加一条新记录到投票项目表Votes中;

  Pr_UpdateVote 更新参与投票项目的票数;

  Pr_DeleteVote 从投票项目表Votes中获取删除一条投票项目信息。

  以上各存储过程的程序代码如下:

/* 存储过程Pr_GetVotes */

CREATE PROCEDURE Pr_GetVotes
AS
SELECT * FROM Votes ORDER BY VoteID

/* 存储过程Pr_GetSingleVote */

CREATE PROCEDURE Pr_GetSingleVote
(@VoteID int)
AS
SELECT Votes.* FROM Votes WHERE VoteID = @VoteID

/* 存储过程Pr_AddVote */

CREATE PROCEDURE Pr_AddVote(@Item varchar(100))
AS
INSERT INTO Votes(Item,ItemCount) VALUES(@Item,0) RETURN @@Identity

/* 存储过程Pr_UpdateVote */

CREATE PROCEDURE Pr_UpdateVote (@VoteID int)
AS
UPDATE Votes SET VoteCount = VoteCount + 1
WHERE VoteID = @VoteID

/* 存储过程Pr_DeleteVote */

CREATE PROCEDURE Pr_DeleteVote (@VoteID int)
AS
DELETE Votes
WHERE VoteID = @VoteID

2.2 数据库访问层设计

  在应用程序WebVote中添加访问投票表Votes的类Vote,该类封装对投票项目表Votes中记录的选择、添加、修改和删除的方法。其中:

  方法GetVotes() 从投票项目表Votes中获取所有投票项目的信息;

  方法AddVote(String sItem) 添加一条新记录到投票项目表Votes中;

  方法UpdateVote(int nVoteID) 更新参与投票项目的票数;

  方法DeleteVote(int nVoteID) 从投票项目表Votes中获取删除一条投票项目信息。

  类Vote的程序设计代码如下:

public class Vote
{
 public SqlDataReader GetVotes()
 {
  //定义类SQLHelper
  SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();
  //定义保存从数据库获取的结果的DataReader
  SqlDataReader dr = null;
  try
  { //执行存储过程
   sqlHelper.RunProc("Pr_GetVotes", out dr);
  }

  catch (Exception ex)
  { //抛出执行数据库异常
   SystemError.CreateErrorLog(ex.Message);
   throw new Exception(ex.Message, ex);
  }

  //返回从数据库获取的结果

  return (dr);
 }

 public int AddVote(String sItem)
 { //定义类SQLHelper
  SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();
  //创建访问数据库的参数
  SqlParameter[] paramList = {
   sqlHelper.CreateInParam("@Item", SqlDbType.VarChar,100,sItem)
  };
  try
  { //执行存储过程
   return (sqlHelper.RunProc("Pr_AddVote", paramList));
  }
  catch (Exception ex)
  { //抛出执行数据库异常
   SystemError.CreateErrorLog(ex.Message);
   throw new Exception(ex.Message, ex);
  }
 }

 public void UpdateVote(int nVoteID)
 { //定义类SQLHelper
  SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();
  //创建访问数据库的参数
  SqlParameter[] paramList = {sqlHelper.CreateInParam("@VoteID", SqlDbType.Int, 4,nVoteID)};
  try
  { //执行存储过程
   sqlHelper.RunProc("Pr_UpdateVote", paramList);
  }
  catch (Exception ex)
  { //抛出执行数据库异常
   SystemError.CreateErrorLog(ex.Message);
   throw new Exception(ex.Message, ex);
  }
 }

 public void DeleteVote(int nVoteID)
 { //定义类SQLHelper
  SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();
  //创建访问数据库的参数
   SqlParameter[] paramList = {
    sqlHelper.CreateInParam("@VoteID", SqlDbType.Int, 4,nVoteID)
   };
   try
   { //执行存储过程
    sqlHelper.RunProc("Pr_DeleteVote", paramList);
   }
   catch (Exception ex)
   { //抛出执行数据库异常
    SystemError.CreateErrorLog(ex.Message);
    throw new Exception(ex.Message, ex);
   }
  }
 }

  系统主页面设计

  在应用程序WebVote中添加一个新的Web页面,并命名为Default.aspx,它的代码隐藏文件为Default.aspx.cs。

  在页面Default.aspx上添加3个超链接控件,名称分别为ItemManageLink、OnlineVoteLink、ViewVoteLink。它们分别实现跳转投票项目管理页面VoteItemManage.aspx、投票页面WebOnlinVote.aspx、投票结果页面ShowVoteInfo.aspx。页面Default.aspx的设计界面如图2所示。


图2 页面Default.aspx的设计界面

  页面Default.aspx的HTML设计代码如下:

<asp:HyperLink ID="ItemManageLink" NavigateUrl="~/VoteItemManage.aspx"

runat="server" Font-Bold="True">投票项目管理</asp:HyperLink>

<asp:HyperLink ID="OnlineVoteLink" NavigateUrl="~/WebOnlinVote.aspx"

runat="server" Font-Bold="True">网站在线投票</asp:HyperLink>

<asp:HyperLink ID="ViewVoteLink" NavigateUrl="~/ShowVoteInfo.aspx"

runat="server" Font-Bold="True">查看投票结果</asp:HyperLink>

  在线投票系统运行之后,系统默认页面Default.aspx的初始化界面如图3所示,此时显示3个链接按钮。


图3 投票页面Default.aspx的初始化界面

投票项目管理页面设计

  在应用程序WebVote中添加一个新的Web页面,并命名为VoteItemManage.aspx,它的代码隐藏文件为VoteItemManage.aspx.cs文件。

  1.页面设计

  在页面VoteItemManage.aspx上添加一个列表控件、一个Button控件、一个TextBox控件和一个ImageButton控件,它们的名称分别为ItemList、AddBtn、Item和deleteBtn。控件ItemList显示投票项目表中的所有数据;控件AddBtn实现添加一个新的投票项目;控件Item用来输入新的投票项目名称;控件deleteBtn删除一个投票项目。页面ItemManage.aspx的设计界面如图4所示。


图4 页面VoteItemManage.aspx的设计界面

  页面VoteItemManage.aspx的HTML设计代码如下:

<title>网络在线投票系统</title>

<link href="CSS/ASPNET2BaseCss.css" type="text/css" rel="stylesheet">

<asp:ListBox id="ItemList" width="150" rows="10" runat="server"

CssClass="SelectSta" />

<asp:ImageButton id="deleteBtn" ImageUrl="~/images/delete.gif"

AlternateText="删除此项" runat="server"

CommandName="delete" OnClick="deleteBtn_Click" />

<asp:TextBox ID="Item" Runat="server" Width="252"

CssClass="InputCss"></asp:TextBox>

<asp:Button ID="AddBtn" Runat="server" Text="增加新的投票项目"

CssClass="ButtonCss" OnClick="AddBtn_Click"></asp:Button>


  2.页面初始化

 

[1] [2] [3] 下一页


  • 上一篇文章: 没有了

  • 下一篇文章:
  • 相关文章