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 |
在应用程序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); } }
文章整理:西部数码--专业提供域名注册、虚拟主机服务 相关文章
热点关注
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源 网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧 行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒 网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它 服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护 软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer 网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash 程序设计 Java技术 C/C++ VB delphi 网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术 操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD |




