APP下载

利用SQL Server 2000和VB实现电脑抽奖程序

2016-11-16孙雪

电脑知识与技术 2016年25期
关键词:抽奖控件参与者

孙雪

摘要: 在一些大型活动中,为了吸引参与者,通常会有抽奖环节。随着计算机的普及,电视、网络等媒体的广泛传播,“电脑抽奖”的方式越来越多地出现,而“电脑抽奖软件”也有着很好的使用价值。该文通过分析这种软件的实现原理,利用SQL Server 2000和VB设计并实现了一个电脑抽奖软件,为读者提供了设计和实现这种软件的思路。

关键词:SQL Server 2000;电脑抽奖;VB

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)25-0003-02

1引言

在一些大型活动中,为了吸引参与者,通常会有抽奖环节。传统的抽奖方式是将能唯一标识参与者的号码,比如身份证号、参会的顺序号等,打乱顺序地放入一个抽奖箱中。在活动的抽奖环节中,由组织者监督,抽奖嘉宾随机地在抽奖箱中抽出一个或几个号码,那么这些号码对应的参与者就是获奖者。如今,随着计算机的普及,电视、互联网等媒体的广泛传播,越来越多地出现了电脑抽奖的方式。特别是在一些大型的电视活动中,通常会通过抽出参与观众的身份证号或电话号码来产生幸运观众。电脑抽奖的方式想必读者都见到过,并且有许多人也参与过类似的活动。那么,像这种电脑抽奖的软件是如何设计和实现的呢?本文笔者通过自己设计的电脑抽奖软件,来为大家提供一个设计和实现这种软件的思路。

2电脑抽奖软件的总体设计

电脑抽奖的过程就是把传统的抽奖过程用计算机实现了。传统的抽奖是把参与者的信息放进抽奖箱,而电脑抽奖则是要把其数据放到数据库中;在传统的抽奖中由抽奖嘉宾在抽奖箱中随机地抽出获奖者,而在电脑抽奖中则是由抽奖嘉宾通过按键或点击按钮进行“开始”和“暂停”,随机地从数据库中提取幸运者的。

由此可见,设计电脑抽奖软件的总体思路是:

(1)首先组织者通过信息的录入界面,向数据库中录入参与者的信息。

(2)当数据库中有了数据以后就可以进行抽奖了,这时需要有一个抽奖界面,抽奖嘉宾通过按键或点击“开始”按钮进行抽奖。在抽奖中,通常屏幕上会有号码在不停地翻动,这些号码就是实时地在数据库中随机读取的数据。当抽奖嘉宾再次按键或点击“暂停”按钮时,会有一个号码停在屏幕上,那么这个号码所对应的参与者就是这个环节的幸运者。

(3)产生了获奖者后需要将获奖者的详细信息记录下来,为了活动以后方便联系;同时还要将获奖者信息从数据库中删除,为了下一环节的抽奖时不至于重复抽取。

由设计思路可知,电脑抽奖软件有两大部分组成:后台数据库和前台用户界面。

后台数据库主要用来存储参与者的信息,包括参与者的标识号、姓名、年龄、性别、电话、联系地址等。

前台显示界面是为用户提供一个良好的人机界面平台,方便用户操作。它主要由信息录入界面和电脑抽奖界面组成。“信息录入界面”是为了方便组织者向数据库中输入数据而设计的,“电脑抽奖界面”是用来展示抽奖的过程和结果。

3电脑抽奖软件的实现

根据软件的设计思路,在实现中,选用SQL Server 2000作为后台数据库,选用比较容易掌握和方便使用的面向对象的高级语言VB来做前台显示界面,这里使用了Visual Basic 6.0作为设计工具。

3.1 数据库的设计实现

在SQL Server 2000查询分析器中使用T-SQL语句建立数据库和数据表。用下面语句建立数据库InfoDB:create database InfoDB。在InfoDB中建立数据表Information:

create table InfoDB.dbo.information

userid varchar(26) primary key,

username varchar(30) not null,

usersex varchar(5) not null check (usersex in(男,女)),

userage varchar(10) not null check (userage between 1 and 150),

usertel varchar(30) not null,

useraddr varchar(50) not null

其中userid为主键,表示参与者的标识号;username、usersex、userage、usertel、useraddr分别表示参与者的姓名、性别、年龄、电话、联系地址。

3.2 利用VB设计实现前台界面

利用VB设计前台界面,需要设计两个界面,分别是“信息录入界面”和“电脑抽奖界面”。在界面的设计中用到的主要控件有:标签(label)、按钮(button)、文本框(textBox)、计时器(timer)。

界面布置好以后,就要设计程序。程序设计有两个关键点,一个是VB和SQL Server 2000数据库的连接,另一个是timer控件的使用。

VB和SQL Server 2000数据库的连接,这里采用了ADO的方式来连接SQL Server数据库。若要在VB中使用ADO对象,需要在工程中添加ADO控件,具体方法是单击“工程”菜单上“部件”命令,打开“部件”对话框,在列表中选择“Microsoft ADO Data Control 6.0 (OLEDB)”,点“确定”,此时ADO控件就显示在工具箱中。将“ADO控件”拖动到需要连接数据库的界面上,由于两个界面都需要连接数据库,所以两个界面都需要有ADO控件。设置ADO控件的属性,通过在“数据库链接属性”中选择数据库服务器、登陆方式以及所用数据库的名称,经过“测试连接”后测试成功,则返回如图1属性对话框中的连接字符串。由于两个窗体都需要和数据库进行操作,所以在每个窗体的Form_load事件中都需要首先打开与数据库的连接,语句如下:

Set con = New ADODB.Connection

con.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=InfoDB"

con.Open

其中“con.ConnectionString”就是图1对话框中生成的连接字符串。

下面就可以使用语句来操作数据库。在“信息录入界面”中需要向数据库中插入数据,则需要在插入数据的按钮cmdInsert的click事件中写入如下程序来向数据库中插入数据。

Set com = New ADODB.Command

com.ActiveConnection = con

com.CommandText = "insert into information values

(" & txtUserid.Text & ",

" & txtUsername.Text & ",

" & cboUsersex.Text & ",

" & txtUserage.Text & ",

" & txtUsertel.Text & ",

" & txtUseraddr.Text & ")"

com.Execute

在“电脑抽奖界面”中,当抽奖嘉宾点击“开始”按钮时开始抽奖,这时需要从数据库中随机地读取数据,并能在界面上显示数据变化的效果,此时就需要VB中制作动画效果的一个很重要的控件——Timer控件。Timer控件的重要属性有,“Enabled”表示计时器是否工作以及“Interval”表示给定的时间间隔,这里是以毫秒(ms)为单位。Timer控件的一个最重要的事件是Timer事件,表示每过一个Interval就会自动地激发Timer事件。在本程序中,由于要不停地从数据库中随机读取userid,所以需要用到Timer控件,使用时要适当设置Interval属性的值,这里根据需要将Interval设置成了50ms,Timer的Enabled属性初始化为“False”。当嘉宾按“开始”按钮时,计时器开始工作,即在开始按钮cmdStart的click事件中要将计时器设置为可用“tmrCount.Enabled = True”。开始抽奖即每过50ms随机地从数据库中读取一个userid并显示,则在Timer事件中需要写如下代码:

Private Sub tmrCount_Timer()

Dim strsql As String

Dim str As String

Randomize

strsql = "select top 1 * from information order by newid()"

Set rs = New ADODB.Recordset

rs.ActiveConnection = con

rs.LockType = adLockOptimistic

rs.CursorType = adOpenDynamic

rs.Source = strsql

rs.Open

lblRandom.Caption = rs.Fields(0)

End Sub

程序利用随机函数Randomize首先进行初始化。接着要执行一个查询语句“select top 1 * from information order by newid()”,这条语句的作用是在sqlserver中随机读取一条记录。执行完查询后需要利用“lblRandom.Caption = rs.Fields(0)”语句将userid显示到界面上。此程序每过50ms运行一次,这样界面上就会显示出号码在不停翻动的效果。

当抽奖嘉宾点击“暂停”按钮时,计时器停止工作,这时就会有一个userid显示在界面上,那么这个userid对应的参与者就是获奖者。最后程序要做的收尾工作是,将显示在界面上的userid所对应的用户信息写入到一个记事本文件中,同时将对应的信息从数据库中删除,并关闭数据库的连接。所以暂停按钮cmdPause的click事件的代码如下:

Private Sub cmdPause_Click()

Dim strsql As String

tmrCount.Enabled = False

Open App.Path + "\result.txt" For Append As #1

Print #1, filestr & rs("userid") & " " & rs("username") & " " & rs("usersex") & " " & rs("userage") & " " & rs("usertel") & " " & rs("useraddr")

Set com = New ADODB.Command

com.ActiveConnection = con

strsql = "delete from information where userid =" & rs("userid") & ""

com.CommandText = strsql

com.Execute

Close #1

rs.Close

End Sub

4结束语

在计算机网络、电视等媒体如此发达的今天,电脑抽奖具有很强的实用价值,与传统的抽奖方式相比,它既能节约资源又能提高效率。本文笔者分析了电脑抽奖软件的原理,并利用SQL Server 2000数据库和Visual Basic 6.0设计并实现了一个电脑抽奖程序,为读者提供了设计并实现这种软件的思路。

参考文献:

[1] 张俊玲,王秀英.数据库原理与应用[M].清华大学出版社,2010,7(2).

[2] Daniela F,Donald K,Ioana M.Integrating Keyword Search into XML Query Processing[J]. Computer Network,2000,33(6):25-28.

猜你喜欢

抽奖控件参与者
休闲跑步参与者心理和行为相关性的研究进展
开学大抽奖
浅析打破刚性兑付对债市参与者的影响
大抽奖
海外侨领愿做“金丝带”“参与者”和“连心桥”
ASP.NET服务器端验证控件的使用
常数轮理性秘密分享机制
Spreadsheet控件在Delphi数据库系统中的编程与应用