婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > .net+mssql制作抽獎程序思路及源碼

.net+mssql制作抽獎程序思路及源碼

熱門標簽:云南全自動外呼系統公司 外呼系統的話術 衛星地圖標注距離 陽光創信ai外呼獲客系統助力 貴州外呼回撥系統是什么 智能語音車載電話機器人 安陽天音防封電銷卡 競圣地圖標注服務 智能外呼系統需要多少錢

抽獎程序:

思路整理,無非就是點一個按鈕,然后一個圖片旋轉一會就出來個結果就行了,可這個程序的要求不是這樣的,是需要從數據庫中隨機抽取用戶,根據數據庫中指定的等級和人數,一鍵全部抽出來結果就行了。同時需要存儲到數據庫。還需要一個導出的功能。

不能遺漏的是,如果通過隨機數根據id來抽取的話,需要考慮id不連續的問題,如果全部取出id也不現實。盡量少的去讀寫數據庫。

數據庫:

復制代碼 代碼如下:

CREATE TABLE [dbo].[users](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [name] [nvarchar](50) NOT NULL,
    [phone] [nvarchar](50) NULL,
 CONSTRAINT [PK_table1] PRIMARY KEY CLUSTERED
(
    [id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

CREATE TABLE [dbo].[result](
 [id] [int] IDENTITY(1,1) NOT NULL,
 [usersid] [int] NOT NULL,
 [awardsid] [int] NOT NULL,
 CONSTRAINT [PK_result] PRIMARY KEY CLUSTERED
(
 [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

CREATE TABLE [dbo].[awards](
 [id] [int] IDENTITY(1,1) NOT NULL,
 [Name] [nvarchar](50) NOT NULL,
 [Number] [int] NOT NULL,
 CONSTRAINT [PK_awards] PRIMARY KEY CLUSTERED
(
 [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

CREATE VIEW [dbo].[view1]
AS
SELECT     dbo.result.id AS resultid, dbo.users.id, dbo.users.name, dbo.users.phone, dbo.awards.Name AS awardname
FROM         dbo.awards INNER JOIN
                      dbo.result ON dbo.awards.id = dbo.result.awardsid INNER JOIN
                      dbo.users ON dbo.result.usersid = dbo.users.id

CREATE PROCEDURE [dbo].[getranddata]
--這個地方的參數是后臺調用傳的參數,兩個變量之間需要“,”號分開
@count int, --剩余獎項大小
@awards int --獎項的id
AS BEGIN
--這個地方定義的參數是存儲過程內部用到的
DECLARE @minid int --最大id
DECLARE @maxid int --最小id
DECLARE @randnum int --隨機數臨時變量
DECLARE @exist int --查詢結果

SET @minid =
  (SELECT top 1 id
   FROM users
   ORDER BY id ASC) --查詢最小id
SET @maxid =
  (SELECT top 1 id
   FROM users
   ORDER BY id DESC) --查詢最大id
--set @count = 100
--set @awards = 1
--嵌套語句begin開始,end結束
while @count>0 BEGIN
SELECT @randnum = ROUND(((@maxid - @minid -1) * RAND() + @minid), 0)
SET @exist =
  (SELECT count(*)
   FROM users
   WHERE id=@randnum) IF @exist = 1 BEGIN
INSERT INTO result(usersid,awardsid)
VALUES(@randnum,
       @awards)
SET @count = @count - 1 END END END

其中三張表,一個視圖,一個存儲過程。

后臺代碼:

復制代碼 代碼如下:

protected void Button1_Click(object sender, EventArgs e)
{
    SqlConnection sqlcon = new SqlConnection("server=.;database=test;uid=sa;pwd=123");
    sqlcon.Open();
    SqlDataAdapter sqlsda = new SqlDataAdapter("select * from awards", sqlcon);
    ds = new DataSet();
    sqlsda.Fill(ds);
    DataTable dt = ds.Tables[0].Copy();
    ds.Clear();
    int count = dt.Rows.Count;

    for (int i = 0; i count; i++)
    {
        SqlCommand sqlcmd = new SqlCommand("getranddata", sqlcon);
        SqlParameter pcount = new SqlParameter("@count", Convert.ToInt32(dt.Rows[i]["Number"]));
        SqlParameter pawards = new SqlParameter("@awards", Convert.ToInt32(dt.Rows[i]["id"]));
        sqlcmd.Parameters.Add(pcount);
        sqlcmd.Parameters.Add(pawards);
        sqlcmd.CommandType = CommandType.StoredProcedure;
        sqlcmd.ExecuteNonQuery();

        sqlsda = new SqlDataAdapter("select top " + Convert.ToInt32(dt.Rows[i]["Number"]) + " * from view1 order by resultid desc", sqlcon);
        sqlsda.Fill(ds, "t" + i.ToString());

        switch (i)
        {
        case 0:
            GridView1.DataSource = ds.Tables["t" + i.ToString()].Copy().DefaultView;
            GridView1.DataBind();
            break;
        case 1:
            GridView2.DataSource = ds.Tables["t" + i.ToString()].Copy().DefaultView;
            GridView2.DataBind();
            break;
        case 2:
            GridView3.DataSource = ds.Tables["t" + i.ToString()].Copy().DefaultView;
            GridView3.DataBind();
            break;
        default:
            break;
        }
    }
    sqlcon.Close();
}

獎項設置:

抽獎結果:

=================================================================

知識點:

SQL - 生成指定范圍內的隨機數

復制代碼 代碼如下:

DECLARE @Result INT DECLARE @Upper INT DECLARE @Lower INT
SET @Lower = 1
SET @Upper = 10
SELECT @Result = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)
SELECT @Result

ROUND()函數:返回按指定位數進行四舍五入的數值。

RAND()函數:生成隨機數。

SQL循環語句嵌套

復制代碼 代碼如下:

DECLARE @i int
SET @i=1 while @i8 BEGIN IF @i5 print space(4-@i)+REPLICATE('*',2*@i-1) ELSE print space(@i-4)+REPLICATE('*',15-2*@i)
SET @i=@i + 1 END

您可能感興趣的文章:
  • javascript圓盤抽獎程序實現原理和完整代碼例子
  • javascript 隨機抽獎程序代碼
  • python實現的簡單抽獎系統實例
  • Android實現抽獎轉盤實例代碼
  • php抽獎小程序的實現代碼
  • C++抽獎程序實現方法

標簽:河源 營口 湘潭 欽州 預約服務 周口 鄂爾多斯 寧夏

巨人網絡通訊聲明:本文標題《.net+mssql制作抽獎程序思路及源碼》,本文關鍵詞  .net+mssql,制作,抽獎,程序,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《.net+mssql制作抽獎程序思路及源碼》相關的同類信息!
  • 本頁收集關于.net+mssql制作抽獎程序思路及源碼的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲成a人v欧美综合天堂下载| 成人动漫视频在线| 亚洲人成在线观看一区二区| 亚洲欧洲日产国码二区| 亚洲激情中文1区| 丝袜脚交一区二区| 国产美女在线观看一区| 91麻豆123| 日韩一二三区视频| 国产精品成人免费在线| 中文字幕中文乱码欧美一区二区| 玉米视频成人免费看| 久久99精品久久只有精品| 成人av网站在线| 欧美综合在线视频| 久久久久久夜精品精品免费| 日韩美女精品在线| 久久91精品国产91久久小草| 一本到不卡免费一区二区| www激情久久| 久久99精品久久久久久| 欧美三区在线观看| 一区二区三区四区高清精品免费观看| 九九国产精品视频| 日韩欧美色电影| 天天综合色天天| 日韩一级高清毛片| 婷婷综合五月天| 91精品国产综合久久久久久久| 亚洲乱码国产乱码精品精的特点| 成人国产精品免费观看视频| 国产精品久久久久久久裸模| 成人天堂资源www在线| 国产性色一区二区| 国产69精品久久99不卡| 欧美国产精品一区| 国产自产2019最新不卡| 国产女主播在线一区二区| 成人av网址在线| 亚洲精品乱码久久久久久日本蜜臀| 波多野结衣中文字幕一区| 国产精品污www在线观看| 色视频一区二区| 国产在线麻豆精品观看| 亚洲精品欧美激情| 日韩三级在线观看| 一本一本大道香蕉久在线精品 | 国产日韩欧美亚洲| 色8久久精品久久久久久蜜| 日韩电影在线观看网站| 国产精品嫩草影院av蜜臀| 91毛片在线观看| 国产精品99久久久久久久vr| 一区二区三区蜜桃网| 国产精品日韩精品欧美在线| 3atv一区二区三区| 久久久久综合网| 亚洲欧洲www| 成人性生交大片| 99r精品视频| 91精品福利在线一区二区三区| 日韩欧美自拍偷拍| 国产精品久久久久天堂| 欧美片网站yy| 色呦呦国产精品| 粗大黑人巨茎大战欧美成人| 日韩高清一区二区| 夜夜精品浪潮av一区二区三区| 精品国产乱码久久久久久老虎 | 亚洲精品一区二区三区影院| 97久久精品人人做人人爽50路| 国产精品一区久久久久| 亚洲国产美女搞黄色| 久久亚洲一区二区三区四区| 国产精品久久久久影院| 7777精品伊人久久久大香线蕉最新版| 欧美在线你懂得| 日韩女优视频免费观看| 国产精品不卡一区| 视频一区国产视频| 国产大陆a不卡| 欧美日韩国产成人在线91| 日韩精品中文字幕在线不卡尤物| 精品久久久久久综合日本欧美| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 欧美zozo另类异族| 亚洲国产精华液网站w| 婷婷成人激情在线网| 国产精品一区二区男女羞羞无遮挡 | 国产视频视频一区| 精彩视频一区二区三区 | 精品免费日韩av| 欧美日韩一区二区三区视频| 国产精品一区二区久久不卡| 7777精品伊人久久久大香线蕉最新版 | 日产精品久久久久久久性色| 国产丝袜在线精品| 蜜芽一区二区三区| 欧美三级蜜桃2在线观看| 亚洲国产电影在线观看| 99久久久免费精品国产一区二区 | 欧美日韩免费一区二区三区视频| 亚洲曰韩产成在线| 在线不卡一区二区| 成人av在线网| 欧美岛国在线观看| 亚洲综合av网| 国产精品亚洲а∨天堂免在线| 激情久久五月天| 一区二区在线观看免费 | 精品国产免费一区二区三区四区 | 在线视频亚洲一区| 九九热在线视频观看这里只有精品| 91色porny蝌蚪| 欧美高清在线视频| 国产成a人无v码亚洲福利| 91免费在线视频观看| 成人免费av网站| 在线不卡一区二区| 日韩主播视频在线| 亚洲国产视频直播| 成人免费视频视频| 欧美色精品在线视频| 久久女同互慰一区二区三区| 亚洲乱码国产乱码精品精98午夜| 91精品国产综合久久精品app| 在线中文字幕一区| 成人h动漫精品一区二区| 国产成人8x视频一区二区| 国产一区91精品张津瑜| 国产精品亚洲一区二区三区在线| 性欧美疯狂xxxxbbbb| 亚洲成a人v欧美综合天堂下载| 亚洲丰满少妇videoshd| 成人aaaa免费全部观看| 一区二区三区色| 国产欧美视频在线观看| 欧美日韩亚洲高清一区二区| 99国产精品久久| 成人激情动漫在线观看| 激情欧美一区二区| 调教+趴+乳夹+国产+精品| 青青草原综合久久大伊人精品| 亚洲成人福利片| 欧美一区二区视频免费观看| 日本视频免费一区| 日韩亚洲国产中文字幕欧美| 国产一区二区在线视频| 欧美一卡二卡三卡| 九一久久久久久| 最新国产の精品合集bt伙计| 99国产精品视频免费观看| 国产一区二区三区香蕉| 高清国产一区二区| 激情综合五月天| 另类中文字幕网| 国产成人啪午夜精品网站男同| 丁香天五香天堂综合| 9色porny自拍视频一区二区| 在线精品国精品国产尤物884a| 欧美日本一区二区在线观看| 欧美一卡2卡三卡4卡5免费| 日韩欧美在线不卡| 亚洲婷婷国产精品电影人久久| 麻豆国产精品官网| 美女一区二区三区| 亚洲国产你懂的| 韩国视频一区二区| 欧洲精品一区二区三区在线观看| 欧美精品久久久久久久多人混战| 国产日韩一级二级三级| 亚洲一区二区五区| 国产成人精品一区二区三区四区| 国产亚洲欧美日韩在线一区| 亚洲激情一二三区| 奇米888四色在线精品| 亚洲一区二区不卡免费| 性欧美大战久久久久久久久| 亚洲国产精品一区二区尤物区| 国产亚洲精品7777| 亚洲国产成人va在线观看天堂| 亚洲成人资源在线| 国产91精品露脸国语对白| 在线播放欧美女士性生活| 中文字幕一区二区三区不卡| 精品一区在线看| 久久久久国产成人精品亚洲午夜| 视频在线观看一区二区三区| 欧美性一级生活| 91精品欧美久久久久久动漫 | 国产一区日韩二区欧美三区| 在线亚洲欧美专区二区| 久久亚洲综合色| 麻豆精品精品国产自在97香蕉| 99精品在线观看视频| 国产精品国产三级国产普通话三级| 久久精品国产在热久久| 久久嫩草精品久久久精品| 国产成人在线电影| 亚洲激情自拍视频|