asp.net做篮球比赛抽签功能

  • 来源: 编程中国 作者: 若水   2008-05-12/18:45
  •    最近做了一关于运动会的项目,其中有个报名,完了之后就可以抽签配对……
        对体育方面的内容不是很了解,所以有些书面语说不出来,但是我相信大家都明白我现在要做的是一个什么了,对吧。就是比赛之前各队都要抽签,抽到一样签的大比赛。刚看到这样我有点晕,不知道该怎么样做,而我首先想到的是存储过程。我想着存储过程能不能完成这个功能呢?我开始用存储过程来完成这个。但是当我开始写的时候,怎么不知从和下手。我放弃了存储过程,网上找了一下,发现网上还没有这东西……
        首先我考虑到这个签是随机产生的,要用到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];

     


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多