您的位置  首页 >> 学习园地 >> .NET技术 >> 正文
asp.net做篮球比赛抽签功能
[来源:本站 | 日期:2011年12月27日 | 浏览942 次] 字体:[ ]

最近做了一关于运动会的项目,其中有个报名,完了之后就可以抽签配对……
    对体育方面的内容不是很了解,所以有些书面语说不出来,但是我相信大家都明白我现在要做的是一个什么了,对吧。就是比赛之前各队都要抽签,抽到一样签的大比赛。刚看到这样我有点晕,不知道该怎么样做,而我首先想到的是存储过程。我想着存储过程能不能完成这个功能呢?我开始用存储过程来完成这个。但是当我开始写的时候,怎么不知从和下手。我放弃了存储过程,网上找了一下,发现网上还没有这东西……
    首先我考虑到这个签是随机产生的,要用到Random类。但是这个签又是人为随便写的,有可能是ABC……也有可能是甲乙丙……
    …………
    经过我反复的思考,我最后这样做出来了这个东西……
     首先建立一个比赛安排的数据表,里面包括比赛的时间,地点等,并且给每场比赛设置一个签值,可以是ABC……或甲乙丙……,一个参赛对的表,里面包括该对的一些参赛信息……
    在抽签按钮的click事件中写上下面的程序……
     1.先从比赛安排表中取出可以被抽的签的值……
      string dbname = Server.MapPath("App_Data/basketball.mdb");

        OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + dbname);
        conn.Open();
        OleDbDataAdapter da = new OleDbDataAdapter("select qian from t_arranges where quautity<2", conn);//quautity字段表示被抽次数
        DataSet ds = new DataSet();
        da.Fill(ds, "t_table");
       2.判断还有没有签可抽……
         DataRow[] rows = ds.Tables[0].Select();
        int counts = rows.Length;
        if (counts > 0)  //如果有签可抽
        {
           **//这里下面再说……
        }
        else
        {
            Response.Write("<script language=javascript>alert('比赛时间还没有确定!');</script>");
        }
       3.如果有签可抽则将签保存到一个哈希表中
   
    也就是**里面的内容

            Hashtable ht = new Hashtable();
            for (int i = 1; i < counts + 1; i++)
            {
                string qian = rows[i - 1]["qian"].ToString();  //qian字段表示设置的签值
               ht.Add(i.ToString(), qian);   
            }
        4.声明一个Random对象。
            Random rdm = new Random();
    5.让Random对象从哈希表的键中随机产生一个值
            counts = counts + 1;
            string random = rdm.Next(1, counts).ToString().Trim();
     6.用随机产生的键去访问哈希表的值。
      string qvalue = (string)ht[random];
     7.提交数据库……
      ……………………这部分的内容就省了………………
    这个 qvalue 就是随机抽到的签了……
            string qvalue = (string)ht[random];


责任编辑:admin