( 5 )参照图 95-11 添加“ Page_Load ”过程,并对该过程的代码做如下所述的修改。
Sub Page_Load(Src As Object, E As EventArgs)
Dim i, j, k, TotalNum, theId, theNum, Arrl(),Degreein,mostgreein As Integer
TotalNum = 0
For i = 0 To ADDataSet.RecordCount -1
theId = ADDataSet.FieldValueAtIndex(i, "id", Nothing)
If ADDataSet.FieldValueAtIndex(i, "Probaly", Nothing) = 0 Then
theNum = 1
Else
theNum = ADDataSet.FieldValueAtIndex(i, "Probaly", Nothing)
End If
Degreein=ADDataSet.FieldValueAtIndex(i, "Degree", Nothing)
mostgreein=ADDataSet.FieldValueAtIndex(i, "mostgree", Nothing)
If mostgreein> Degreein Then
TotalNum = TotalNum + theNum
ReDim Preserve Arrl(TotalNum)
For k=1 To theNum
Arrl(j) = theId
j = j + 1
Next
End If
Next
If TotalNum <> 0 Then
i = CInt(TotalNum * Rnd())
Session("showID") = Arrl(i)
Upgree.CommandText = "UPDATE Ad SET Degree="+cstr(showData. FieldValue ("Degree", Nothing) +1) +" WHERE ID="+cstr(Session("showID"))
Upgree.Debug = True
End If
End Sub
程序说明:
程序中通过两个“ For ”循环所完成的操作是,统计“ AD ”表里字段“ Probaly ”中所有记录的总和,即统计所有广告图片的总机率;将广告图片的 ID 按“ Probaly ”值存储到数组“ Arrl ”中,例如“ Probaly ”为 10 ,则分别把广告图片的 ID 号存储到 10 个数组“ Arrl ”中,使显示次数大于最大显示次数的广告图片不在以上统计中。接着通过随机操作获取数组“ Arrl ”的数组号,将该数组号的值传递给“ Session("showID") ”,以建立数据集“ showData ”,并将“ AD ”表中该广告图片的显示次数增加“ 1 ”。
6 )切换至设计视图,选择页面中的初始图像,为其设置动态“ src ”属性,如图 95-23 所示。
( 7 )保存“ show.aspx ”。
本实例主要运用“ Rnd() ”随机函数并结合数据集,实现广告图片的随机显示,这是实际应用中最常用的方法。通过该方法可以更好地将广告图片显示次数与广告显示所取得的收益联系起来。至于,如何将广告图片显示次数与广告显示所取得的收益紧密联系起来,这就留给读者们在实际应用中进一步研究。至此,本实例操作完毕。