公司要開晚會,讓我做一個晚會抽獎系統,用C#.net WinForm做出來,只有一個星期了,要求如下:
1,最上面是一個控件用於顯示滾動的抽獎號碼
2,抽獎號碼來源於數據庫的字段(員工工號如:601846,601234等)
3,抽中之後不能再重復參加抽獎
4,每次可產生10名中獎號碼(三等獎每次10名,二等獎每次5名,一等獎....)========================================================
請問該如何來做?

解决方案 »

  1.   

    直接中数据库取十个出来
    放到数据集里
    前多少行什么奖 然后多少行什么奖 ……
    主要是抽取那十个的时候随机即可
    一个最简单的办法
    SELECT TOP 10 * FROM Users ORDER BY NEWID()
    就是这个 ORDER BY NEWID()
    会让你随机取得数据
    既然取出来的十条本来就是随机的
    C# 里按顺序分奖品的级别即可 并不会破坏随机性
      

  2.   

    NEWID() 不是什么数据都支持的。
      

  3.   

    更正:NEWID() 不是什么数据库都支持的。
      

  4.   

    我假设 LZ 使用 SQL Server
      

  5.   

    http://www.cnblogs.com/Files/jhtchina/AwardProgramtest.rar
    里面有代码
      

  6.   

    用List<string> 保存员工号.
    抽中就删除.
    抽几个人是循环控制的!
      

  7.   

    可使用newid()函数实现 如:
    select top 50 *from authors  order by newid()
    每次都会按不同的id排序,你取中奖人数然后记录id号并做一个记录(已获奖)
      

  8.   

    LZ發言:不行啊,中獎後要回寫到數據庫的,直接從數據庫中取不行的,能否使用數組呢?然後Random的值從數據中直接拿出來....急...
      

  9.   

    数据库中加上一个字段,是否中过奖,sql语句加上条件判断。
      

  10.   

    現在我用了一個數組:Array1[120],裡面的值是string的,如何來隨機取10個Array1中的字串呢?
    ==================================================================================
      SqlConnection cnn = new SqlConnection("Data Source=DGVD;Initial Catalog=YUAN;Persist Security Info=True;User ID=sa");
            DataTable dt1 = new DataTable();
            object []Array1;
            private void btnDataIn1_Click(object sender, EventArgs e)
            {
                String sqlstr = "SELECT NO_EMP FROM YUAN01 WHERE CN_TYPE='1'";
                SqlDataAdapter da = new SqlDataAdapter(sqlstr, cnn);
                cnn.Open();
                da.Fill(dt1);
                cnn.Close();
                int w = dt1.Rows.Count;
                Array1 = new object[w];
                //產生數組的值
                int i = 0;
                foreach (DataRow rw in dt1.Rows)
                {
                    Array1[i] = rw["NO_EMP"];
                    i++;
                }
            }
      

  11.   

    有地址么?我以前写过一个给你参考.写的不太好,不过完全可以用的.送XML中提取数据.用ARRAYLIST+随机函数.点机开始就随机显示,再点击停止,就停止随即抽取.
      

  12.   

    現在我用了一個數組:Array1[120],裡面的值是string的,如何來隨機取10個Array1中的字串呢?
    ------------------------------------------------------------------------------------
    产生一个从1到全体员工总数的随机数作为数组的索引就可以了。
    另外还要比较这个索引是否已经被选中。
      

  13.   

    [email protected]上面是俺的郵箱,請aqa6573發資料過來,多謝了...
    搞掂給分.....另:如何一次產生10個不重得復的工號呢?
      

  14.   

    看了楼主的代码了,是用的 SQL Server 啊
    那就用 newid() 啊
    何必那么麻烦去生成随机数
    见我1楼贴
    你把那十条取出来放到一个datatable
    那么就取前N条为一等奖,再m条为二等奖,……
    这样多省事啊