日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

用ASP.NET 2.0设计网络在线投票系统

發(fā)布時間:2023/12/10 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用ASP.NET 2.0设计网络在线投票系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、系統(tǒng)功能設計和數(shù)據(jù)庫設計

  1、系統(tǒng)功能設計和數(shù)據(jù)庫設計

  1.1 系統(tǒng)功能設計

  網(wǎng)絡在線投票系統(tǒng)實現(xiàn)的功能比較簡單,具體如下:

  ◎投票項目的管理;

  ◎添加投票的項目;

  ◎刪除投票的項目;

  ◎對項目進行投票;

  ◎查看項目的投票情況。

  1.2 數(shù)據(jù)庫設計

  本系統(tǒng)的數(shù)據(jù)庫設計比較簡單,只需要存儲投票的信息即可。在SQL Server 2000中創(chuàng)建一個數(shù)據(jù)庫,名稱為“WebVoteDB”,并在該數(shù)據(jù)庫中創(chuàng)建投票項目表Votes。其中“VoteID”字段存儲投票項目ID;“Item”字段存儲投票項目的名稱;“VoteCount”字段存儲每個項目的票數(shù)。創(chuàng)建投票項目表Votes的操作界面如圖1所示。

  投票項目表Votes需要存儲投票項目名稱及其票數(shù),表的字段說明如表1所示。


圖1 創(chuàng)建投票項目表Votes的操作界面

表1 Votes表

字 段 名
?
數(shù) 據(jù) 類 型
?
字 段 說 明
?
鍵 引 用
?
備 注
?
TreeID int? 投票項目ID? PK 主鍵(自動增一)
Item varchar(200)?
投票項目的名稱
??
?

VoteCount
?
int
?
票數(shù)
??
?

  在線投票功能是網(wǎng)站應用程序最常用的功能之一,也是網(wǎng)站應用程序開發(fā)常用的功能模塊。當網(wǎng)站的管理員或用戶提出一些新的想法與建議或者出現(xiàn)一種新產(chǎn)品時,他們可能需要通過用戶或者客戶的投票方式來確定這些新的想法、建議或者新的產(chǎn)品是否滿足用戶或者客戶的需求,另外,網(wǎng)站還可以通過網(wǎng)站在線投票功能做一些實際性的調查工作。本章介紹的網(wǎng)絡在線投票系統(tǒng)還以直觀的圖形化界面顯示投票信息,而且還可以及時查看投票的情況。

  二、投票系統(tǒng)實現(xiàn)

  創(chuàng)建好系統(tǒng)所需要的數(shù)據(jù)庫之后,網(wǎng)絡在線投票系統(tǒng)的具體實現(xiàn)可以分為下面3個部分:

  (1)存儲過程的實現(xiàn)部分;

  (2)數(shù)據(jù)庫訪問層的實現(xiàn)部分;

  (3)功能頁面的實現(xiàn)部分。

  下面將詳細介紹上述3個部分的具體實現(xiàn)方法。首先在Microsoft Visual Studio .NET 2005中創(chuàng)建一個Web站點,名稱為“WebVote”。

  2.1 存儲過程設計

  在數(shù)據(jù)庫WebVoteDB中創(chuàng)建存儲過程Pr_GetVotes、Pr_GetSingleVote、Pr_AddVote、Pr_UpdateVote和Pr_DeleteVote。其中:

  Pr_GetVotes 從投票項目表Votes中獲取所有投票項目的信息;

  Pr_GetSingleVote 從投票項目表Votes中獲取某一條投票項目的信息;

  Pr_AddVote 添加一條新記錄到投票項目表Votes中;

  Pr_UpdateVote 更新參與投票項目的票數(shù);

  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 數(shù)據(jù)庫訪問層設計

  在應用程序WebVote中添加訪問投票表Votes的類Vote,該類封裝對投票項目表Votes中記錄的選擇、添加、修改和刪除的方法。其中:

  方法GetVotes() 從投票項目表Votes中獲取所有投票項目的信息;

  方法AddVote(String sItem) 添加一條新記錄到投票項目表Votes中;

  方法UpdateVote(int nVoteID) 更新參與投票項目的票數(shù);

  方法DeleteVote(int nVoteID) 從投票項目表Votes中獲取刪除一條投票項目信息。

  類Vote的程序設計代碼如下:

public class Vote
{
 public SqlDataReader GetVotes()
 {
  //定義類SQLHelper
  SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();
  //定義保存從數(shù)據(jù)庫獲取的結果的DataReader
  SqlDataReader dr = null;
  try
  { //執(zhí)行存儲過程
   sqlHelper.RunProc("Pr_GetVotes", out dr);
  }

  catch (Exception ex)
  { //拋出執(zhí)行數(shù)據(jù)庫異常
   SystemError.CreateErrorLog(ex.Message);
   throw new Exception(ex.Message, ex);
  }

  //返回從數(shù)據(jù)庫獲取的結果

  return (dr);
 }

 public int AddVote(String sItem)
 { //定義類SQLHelper
  SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();
  //創(chuàng)建訪問數(shù)據(jù)庫的參數(shù)
  SqlParameter[] paramList = {
   sqlHelper.CreateInParam("@Item", SqlDbType.VarChar,100,sItem)
  };
  try
  { //執(zhí)行存儲過程
   return (sqlHelper.RunProc("Pr_AddVote", paramList));
  }
  catch (Exception ex)
  { //拋出執(zhí)行數(shù)據(jù)庫異常
   SystemError.CreateErrorLog(ex.Message);
   throw new Exception(ex.Message, ex);
  }
 }

 public void UpdateVote(int nVoteID)
 { //定義類SQLHelper
  SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();
  //創(chuàng)建訪問數(shù)據(jù)庫的參數(shù)
  SqlParameter[] paramList = {sqlHelper.CreateInParam("@VoteID", SqlDbType.Int, 4,nVoteID)};
  try
  { //執(zhí)行存儲過程
   sqlHelper.RunProc("Pr_UpdateVote", paramList);
  }
  catch (Exception ex)
  { //拋出執(zhí)行數(shù)據(jù)庫異常
   SystemError.CreateErrorLog(ex.Message);
   throw new Exception(ex.Message, ex);
  }
 }

 public void DeleteVote(int nVoteID)
 { //定義類SQLHelper
  SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();
  //創(chuàng)建訪問數(shù)據(jù)庫的參數(shù)
   SqlParameter[] paramList = {
    sqlHelper.CreateInParam("@VoteID", SqlDbType.Int, 4,nVoteID)
   };
   try
   { //執(zhí)行存儲過程
    sqlHelper.RunProc("Pr_DeleteVote", paramList);
   }
   catch (Exception ex)
   { //拋出執(zhí)行數(shù)據(jù)庫異常
    SystemError.CreateErrorLog(ex.Message);
    throw new Exception(ex.Message, ex);
   }
  }
 }

  系統(tǒng)主頁面設計

  在應用程序WebVote中添加一個新的Web頁面,并命名為Default.aspx,它的代碼隱藏文件為Default.aspx.cs。

  在頁面Default.aspx上添加3個超鏈接控件,名稱分別為ItemManageLink、OnlineVoteLink、ViewVoteLink。它們分別實現(xiàn)跳轉投票項目管理頁面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">網(wǎng)站在線投票</asp:HyperLink>

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

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

  在線投票系統(tǒng)運行之后,系統(tǒng)默認頁面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顯示投票項目表中的所有數(shù)據(jù);控件AddBtn實現(xiàn)添加一個新的投票項目;控件Item用來輸入新的投票項目名稱;控件deleteBtn刪除一個投票項目。頁面ItemManage.aspx的設計界面如圖4所示。


圖4 頁面VoteItemManage.aspx的設計界面

  頁面VoteItemManage.aspx的HTML設計代碼如下:

<title>網(wǎng)絡在線投票系統(tǒng)</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.頁面初始化

  頁面VoteItemManage.aspx調用函數(shù)Page_Load(Object sender,EventArgs e)初始化,該函數(shù)調用函數(shù)BindVoteListData()從數(shù)據(jù)庫投票表Votes中獲取所有投票的項目,并把獲取的數(shù)據(jù)綁定到列表控件ItemList。函數(shù)Page_Load(Object sender,EventArgs e)和函數(shù)BindVoteListData()的程序代碼如下:

private void Page_Load(object sender, System.EventArgs e)

{

if(!Page.IsPostBack)

{ //綁定投票項目列表的數(shù)據(jù)

BindVoteListData();

}

}

private void BindVoteListData()

{ //獲取投票項目的所有數(shù)據(jù)

WebVote.Vote vote = new Vote();

SqlDataReader recv = vote.GetVotes();

//設置列表控件的Text屬性和Value屬性

ItemList.DataTextField = "Item";

ItemList.DataValueField = "VoteID";

//設置控件的數(shù)據(jù)源,并綁定控件的數(shù)據(jù)

ItemList.DataSource = recv;

ItemList.DataBind();

recv.Close(); //關閉數(shù)據(jù)讀取器

}

  網(wǎng)絡在線投票系統(tǒng)運行之后,投票項目管理頁面VoteItemManage.aspx的初始化界面如圖5所示,此時已經(jīng)顯示投票的項目信息。


圖5 投票項目管理頁面VoteItemManage.aspx的初始化界面

  3.添加功能

  單擊頁面VoteItemManage.aspx中的【增加新的投票項目】按鈕,觸發(fā)事件AddBtn_Click(object sender, System.EventArgs e),該事件實現(xiàn)添加一個新的投票項目。事件AddBtn_Click(object sender, System.EventArgs e)的程序代碼如下:

private void AddBtn_Click(object sender, System.EventArgs e)
{
if (Item.Text.Length > 0)
{ //定義類
WebVote.Vote vote = new Vote();
try
{ //添加新數(shù)據(jù)項
vote.AddVote(Item.Text.Trim());
BindVoteListData();
//顯示操作結果信息
Response.Write("<script>window.alert('"
+ ASPNET2System.OPERATIONADDSUCCESSMESSAGE + "')</script>");
}

catch (Exception ex)
{ //顯示添加操作中的失敗、錯誤信息
Response.Redirect("~/DesktopModules/ErrorPage.aspx?ErrorUrl="
+ ASPNET2System.RedirectErrorUrl(Request.RawUrl)
+ "&ErrorMessage=" + ex.Message.Replace("\n", " "));
}
}
}

  4.刪除功能

  單擊頁面VoteItemManage.aspx中的【×】按鈕,觸發(fā)事件deleteBtn_Click(object sender, System.EventArgs e),該事件實現(xiàn)刪除已選擇的投票項目。事件deleteBtn_Click(object sender, System.EventArgs e)的程序代碼如下:

protected void deleteBtn_Click(object sender, ImageClickEventArgs e)

{

if (ItemList.SelectedIndex <= -1)

{ //顯示操作結果信息

Response.Write("<script>window.alert('"

+ ASPNET2System.OPERATIONNOSELECTMESSAGE + "')</script>");

return;

}

//定義類

WebVote.Vote vote = new Vote();

try

{ //刪除數(shù)據(jù)

vote.DeleteVote(Int32.Parse(ItemList.SelectedValue));

//重新綁定數(shù)據(jù)

BindVoteListData();

}

catch (Exception ex)

{ //顯示刪除操作中的失敗、錯誤信息

Response.Redirect("~/DesktopModules/ErrorPage.aspx?ErrorUrl="

+ ASPNET2System.RedirectErrorUrl(Request.RawUrl)

+ "&ErrorMessage=" + ex.Message.Replace("\n", " "));

}

}


  投票頁面設計

  在應用程序WebVote中添加一個新的Web頁面,并命名為WebOnlineVote.aspx,它的代碼隱藏文件為WebOnlineVote.aspx.cs文件。

  1.頁面設計

  在頁面WebOnlineVote.aspx上添加一個數(shù)據(jù)網(wǎng)格控件、兩個Button控件和一個Label控件,它們的名稱分別為VoteList、VoteBtn、ShowVote和VoteMessage。控件VoteList用來顯示參與投票的所有項目;控件VoteBtn提交用戶的投票;控件ShowVote實現(xiàn)用戶查看投票情況;控件VoteMessage顯示用戶投票的操作結果。頁面WebOnlinVote.aspx的設計界面如圖6所示。


圖6 頁面WebOnlinVote.aspx的設計界面

  頁面WebOnlinVote.aspx的HTML設計代碼如下:

<%@ Page Language="C#" AutoEventWireup="true"

CodeFile="WebOnlinVote.aspx.cs" Inherits="WebOnlinVote" %>

<HTML><HEAD><title>網(wǎng)絡在線投票系統(tǒng)</title></HEAD>

<asp:datagrid id="VoteList" CssClass="GbText" Runat="server"

AutoGenerateColumns="False" DataKeyField="VoteID">

<Columns>

<asp:TemplateColumn ItemStyle-Width="200">

<ItemTemplate><%# DataBinder.Eval(Container.DataItem,"Item")%>

</ItemTemplate></asp:TemplateColumn>

<asp:TemplateColumn ItemStyle-Width="100">

<ItemTemplate>

<asp:CheckBox ID="VoteCheck" Runat="server"></asp:CheckBox>

</ItemTemplate></asp:TemplateColumn>

</Columns>

<FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />

<SelectedItemStyle BackColor="#FFCC66" Font-Bold="True"

ForeColor="#663399" />

<PagerStyle BackColor="#FFFFCC" ForeColor="#330099"

HorizontalAlign="Center" />

<ItemStyle BackColor="White" ForeColor="#330099" />

<HeaderStyle BackColor="#990000" Font-Bold="True"

ForeColor="#FFFFCC" />

</asp:datagrid>

<asp:button id="VoteBtn" Runat="server" Width="100"

Text="我要投票"></asp:button>     

<asp:button id="ShowVote" Runat="server" Width="100"

Text="查看投票"></asp:button>

<asp:Label ID="VoteMessage" Runat="server" Visible="False"

ForeColor="red" Font-Bold="True">投票成功!!!</asp:Label></td>

</HTML>

  1.頁面初始化

  頁面WebOnlinVote.aspx調用函數(shù)Page_Load(Object sender,EventArgs e)初始化,該函數(shù)調用函數(shù)BindVoteListData()從數(shù)據(jù)庫投票表Votes中獲取所有投票項目的信息,并把獲取的數(shù)據(jù)設置為數(shù)據(jù)網(wǎng)格控件VoteList的數(shù)據(jù)源。函數(shù)Page_Load(Object sender,EventArgs e)和函數(shù)BindVoteListData()的程序代碼如下:

private void Page_Load(object sender, System.EventArgs e)

{

if(!Page.IsPostBack)

{ //綁定投票的項目

BindVoteListData();

VoteMessage.Visible = false;

}

}

private void BindVoteListData()

{ //獲取所有數(shù)據(jù)

WebVote.Vote vote = new Vote();

SqlDataReader recv = vote.GetVotes();

//設置控件的數(shù)據(jù)源,并綁定數(shù)據(jù)

VoteList.DataSource = recv;

VoteList.DataBind();

recv.Close(); //關閉數(shù)據(jù)讀取器

}

  網(wǎng)絡在線投票系統(tǒng)運行之后,投票頁面WebOnlinVote.aspx的初始化界面如圖7所示,此時顯示被投票的項目信息。


圖7 投票頁面WebOnlinVote.aspx的初始化界面

  2.投票功能

  用戶單擊頁面WebOnlinVote.aspx中的【我要投票】按鈕和【查看投票】按鈕分別觸發(fā)事件VoteBtn_Click(object sender, System.EventArgs e)和事件ShowVote_Click(object sender, System.EventArgs e),它們分別實現(xiàn)用戶投票功能和查看投票功能。在投票事件中,事件首先檢查用戶對哪些項目進行了投票,然后更改項目的票數(shù)。在查看投票事件中,事件重定向到頁面ShowVoteInfo.aspx。事件VoteBtn_Click(object sender, System.EventArgs e)和事件ShowVote_Click(object sender, System.EventArgs e)的程序代碼如下:

private void VoteBtn_Click(object sender, System.EventArgs e)

{ //定義類

WebVote.Vote vote = new Vote();

try

{ //添加用戶的投票的項目

foreach(DataGridItem item in VoteList.Items)

{ //查找每個投票項目的選擇控件

CheckBox check = (CheckBox)item.FindControl("VoteCheck");

if(check != null)

{ //說明用戶已經(jīng)投票,則需要添加這一票

if(check.Checked == true)

{ //修改數(shù)據(jù)庫中的票數(shù)

vote.UpdateVote(Int32.Parse(

VoteList.DataKeys[item.ItemIndex].ToString()));

VoteMessage.Visible = true; //顯示用戶投票操作的結果

}

}

}

//顯示操作結果信息

Response.Write("<script>window.alert('

投票成功,感謝您的參與!!!')</script>");

}

catch (Exception ex)

{ //顯示修改操作中的失敗、錯誤信息

Response.Redirect("~/DesktopModules/ErrorPage.aspx?ErrorUrl="

+ ASPNET2System.RedirectErrorUrl(Request.RawUrl)

+ "&ErrorMessage=" + ex.Message.Replace("\n", " "));

}

}

private void ShowVote_Click(object sender, System.EventArgs e)

{ //導向查看投票結果頁面

Response.Redirect("~/ShowVoteInfo.aspx");

}

  顯示投票結果頁面設計

  在應用程序WebVote中添加一個新的Web頁面,并命名為ShowVoteInfo.aspx,它的代碼隱藏文件為ShowVoteInfo.aspx.cs文件。

  1.頁面設計

  在頁面ShowVoteInfo.aspx上添加一個數(shù)據(jù)網(wǎng)格控件、一個Label控件和一個Button控件,它們的名稱分別為VoteList、VoteMessage、WebOnlineVoteBtn。控件VoteList用來顯示參與投票的項目的投票情況,并計算各個投票項目所占的百分比;控件VoteMessage顯示用戶投票的總票數(shù);控件WebOnlineVoteBtn實現(xiàn)投票頁面WebOnlinVote.aspx。頁面ShowVoteInfo.aspx的設計界面如圖8所示。

?

圖8 頁面ShowVoteInfo.aspx的設計界面

  頁面ShowVoteInfo.aspx的HTML設計代碼如下:

<%@ Page Language="C#" AutoEventWireup="true"

CodeFile="ShowVoteInfo.aspx.cs" Inherits="ShowVoteInfo" %>

<HTML><HEAD><title>網(wǎng)絡在線投票系統(tǒng)</title></HEAD>

<asp:DataGrid ID="VoteList" Runat="server" CssClass="Normal"

AutoGenerateColumns="False" DataKeyField="VoteID">

<HeaderStyle BackColor="Orange"></HeaderStyle>

<Columns>

<asp:TemplateColumn HeaderText="投票項目">

<ItemStyle Width="200px"></ItemStyle>

<ItemTemplate><%# DataBinder.Eval(Container.DataItem,"Item")%>

</ItemTemplate></asp:TemplateColumn>

<asp:TemplateColumn HeaderText="所占總票的百分比">

<ItemStyle Width="300px"></ItemStyle>

<ItemTemplate>

<asp:Image ID="voteImage" Runat="server" Height="20" Width='<%#

FormatVoteImage(FormatVoteCount(DataBinder.Eval(

Container.DataItem,"VoteCount").ToString()))%>'

mageUrl="Images/vote.gif">

</asp:Image>

<%# FormatVoteCount(DataBinder.Eval(Container.DataItem,

"VoteCount").ToString())%>%

</ItemTemplate></asp:TemplateColumn>

<asp:TemplateColumn HeaderText="票數(shù)">

<ItemStyle Width="100px"></ItemStyle>

<ItemTemplate>

<asp:Label ID="VoteCount" Runat="server">

<%# DataBinder.Eval(Container.DataItem,"VoteCount")%>

</asp:Label>

</ItemTemplate></asp:TemplateColumn>

</Columns>

</asp:DataGrid>

<asp:Label ID="VoteMessage" Runat="server" ForeColor="Red"

Width="100%"></asp:Label>

<asp:button id="WebOnlineVoteBtn" Runat="server" Width="100"

Text="返回投票頁面" CssClass="ButtonCss"

OnClick="WebOnlineVoteBtn_Click"></asp:button>

</HTML>

  2.頁面初始化

  頁面ShowVoteInfo.aspx調用函數(shù)Page_Load(Object sender,EventArgs e)初始化。該函數(shù)調用函數(shù)BindVoteListData()從數(shù)據(jù)庫投票表Votes中獲取所有投票的項目,并把獲取的數(shù)據(jù)綁定到數(shù)據(jù)網(wǎng)格控件VoteList。函數(shù)Page_Load(Object sender,EventArgs e)還調用函數(shù)SetVoteTotal()從數(shù)據(jù)庫中獲取投票的總票數(shù)。函數(shù)Page_Load(Object sender,EventArgs e)、函數(shù)SetVoteTotal()和函數(shù)BindVoteListData()的程序代碼如下:

int voteTotal = 0;

private void Page_Load(object sender, System.EventArgs e)
{ //設置總票數(shù)voteTotal
 SetVoteTotal();
 if(!Page.IsPostBack)
 { //顯示用戶投票的具體情況
  BindVoteListData();
  VoteMessage.Text = "總票數(shù)為:" + voteTotal.ToString();
 }
}

private void SetVoteTotal()
{ //獲取所有數(shù)據(jù)
 WebVote.Vote vote = new Vote();
 SqlDataReader recv = vote.GetVotes();
 voteTotal = 0;

 //讀取每一個參與投票的項目,并計算票數(shù)總和

 while(recv.Read())
 { //計算它們的總和
  voteTotal += Int32.Parse(recv["VoteCount"].ToString());
 }
 recv.Close();
}

private void BindVoteListData()
{ //獲取數(shù)據(jù)
 WebVote.Vote vote = new Vote();
 SqlDataReader recv = vote.GetVotes();

 //設置控件的數(shù)據(jù)源,并綁定控件的數(shù)據(jù)

 VoteList.DataSource = recv;
 VoteList.DataBind();

 recv.Close();
}

  頁面ShowVoteInfo.aspx初始化時(即數(shù)據(jù)網(wǎng)格控件VoteList綁定數(shù)據(jù)時),分別調用函數(shù)FormatVoteCount(String voteCount)和函數(shù)FormatVoteImage(int voteCount)來計算每個投票項目所占的百分比和圖像的長度(繪制比例圖片)。函數(shù)FormatVoteCount(String voteCount)和函數(shù)FormatVoteImage(int voteCount)的程序代碼如下:

public int FormatVoteCount(String voteCount)
{ //如果投票沒有被投票
 if(voteCount.Length <= 0)
 { //返回0個百分比
  return(0);
 }
 if(voteTotal > 0)
 { //返回實際的百分比
  return((Int32.Parse(voteCount)* 100/voteTotal));
 }
 return(0);
}

public int FormatVoteImage(int voteCount)
{ //返回百分比的圖像的長度
 return(voteCount * 3);
}

  網(wǎng)絡在線投票系統(tǒng)運行之后,顯示投票結果頁面ShowVoteInfo.aspx的初始化界面如圖9所示,此時顯示各個項目的投票結果。

?

圖9 某個時候的投票結果頁面ShowVoteInfo.aspx

ASP.NET2SQLHelper 下載

?

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/mengyao/archive/2007/08/20/1751935.aspx

轉載于:https://www.cnblogs.com/China-Dragon/archive/2010/03/12/1684113.html

總結

以上是生活随笔為你收集整理的用ASP.NET 2.0设计网络在线投票系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。