VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 924|回复: 8

各位,帮帮忙,如何投一次票就不能再投了,asp.net的,毕业设计来的,急!!

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-24 13:00:01 | 显示全部楼层 |阅读模式
public class WebForm1 : System.Web.UI.Page
        {
                protected System.Web.UI.WebControls.Label Label1;
                protected System.Web.UI.WebControls.Button Butvote;
                protected System.Web.UI.WebControls.RadioButtonList RadioButtonList1;
                protected System.Web.UI.WebControls.Button Butred;

                private string voteID="2";
        private void Page_Load(object sender, System.EventArgs e)
                {
                        if(!this.IsPostBack)
                        {
                                //创建连接
                                SqlConnection sqlcon=DB.care();
                                sqlcon.Open();
                                //查询投票标题
                                SqlCommand cmd=new SqlCommand("select voteTitle from voteMaster where voteID="+this.voteID,sqlcon);
                                string title=Convert.ToString(cmd.ExecuteScalar());
                                this.Label1.Text=title;
                //查询标题的内容
                                SqlCommand scd=new SqlCommand("select voteDetailsID ,voteItem from voteDetails where voteID="+this.voteID,sqlcon);
                                SqlDataReader sdr=scd.ExecuteReader();
                                this.RadioButtonList1.DataSource=sdr;
                                this.RadioButtonList1.DataTextField="voteItem";
                                this.RadioButtonList1.DataValueField="voteDetailsID";
                               
                                this.RadioButtonList1.DataBind();
                                sdr.Close();
                                sqlcon.Close();

                        }
                }

                #region Web 窗体设计器生成的代码
                override protected void OnInit(EventArgs e)
                {
                        //
                        // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
                        //
                        InitializeComponent();
                        base.OnInit(e);
                }
               
                /// <summary>
                /// 设计器支持所需的方法 - 不要使用代码编辑器修改
                /// 此方法的内容。
                /// </summary>
                private void InitializeComponent()
                {   
                        this.RadioButtonList1.SelectedIndexChanged += new System.EventHandler(this.RadioButtonList1_SelectedIndexChanged);
                        this.Butvote.Click += new System.EventHandler(this.Butvote_Click);
                        this.Butred.Click += new System.EventHandler(this.Butred_Click);
                        this.Load += new System.EventHandler(this.Page_Load);

                }
                #endregion

               

                private void Butvote_Click(object sender, System.EventArgs e)
                {

                        SqlConnection sqlcon=DB.care();
                        sqlcon.Open();
                        SqlCommand com=new SqlCommand();
                        com.Connection=sqlcon;
                        com.CommandText="Update voteDetails set voteNum=voteNum+1 where voteID="+ voteID +"and voteDetailsID="+RadioButtonList1.SelectedValue.ToString();
                        int vot=com.ExecuteNonQuery();
                       
                        if(vot!=0)
                        {
                                Response.Write("<script language='javascript'>alert('投票成功');window.location.href='show.aspx?voteid="+this.voteID+" ' ;</script>");       
                               
                        }
                        else
                        {
                                Response.Write("投票失败");
                        }
                        sqlcon.Close();
               
                }

                private void RadioButtonList1_SelectedIndexChanged(object sender, System.EventArgs e)
                {
               
                }

                private void Butred_Click(object sender, System.EventArgs e)
                {
                        Response.Redirect("show.aspx?voteid="+this.voteID);
               
                }
        }
}
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-2-10 20:30:01 | 显示全部楼层
1.设置cookies,设置一个标记.
2. 保存对方ip到数据库

第一种方法稍简单.
回复

使用道具 举报

1

主题

60

帖子

37.00

积分

新手上路

Rank: 1

积分
37.00
发表于 2020-2-10 23:30:01 | 显示全部楼层
还是读取cookie比较方便,假如特殊的自己定义的cookie,每次读一下就可以了
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-2-11 09:45:02 | 显示全部楼层
保存IP到数据库比较好
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-2-11 14:15:01 | 显示全部楼层
可以写下代码嘛,我不太懂这个!
回复

使用道具 举报

0

主题

10

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-2-12 13:45:01 | 显示全部楼层
在提供一个方法。只有注册用户才可以投票。然后投票时判断该用户时候已经投票!
回复

使用道具 举报

0

主题

15

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-2-13 19:45:01 | 显示全部楼层
读取IP,投票时判断该IP是否投过.
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-2-15 11:00:01 | 显示全部楼层
其实要看这个投票的性质了。
如果只是一般性,无关紧要的投票,cookie一般来说就可以了,缺点是删除cookie后可以再投票;
简单的记录IP也可以,缺点就等于忽略了的同一IP下的N个用户(例如网吧)。
如果是有奖励的投票,竞赛性质的投票,建议设置更负责的防范措施。
注册用户的方式,那么管理方式就依靠用户系统了,(如果不能防止多次注册,光判断用户也没用)
我觉得综合一下也许会比较好,
投票后,cookie记录,投票前用js判断是否投票(节省服务器资源),如果cookie没有,再通过IP判断,如果IP有相同,再判断一下两次投票时间的时间差,具体多少时间内投票视为不重复看自己设置了。
----------------------
也许还有更好的方法。。。:)
回复

使用道具 举报

5

主题

19

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-2-15 19:45:02 | 显示全部楼层
shenmue024 之见,我赞同
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表