📄 link.vb
字号:
Imports System
Imports System.Configuration
Imports System.Data
Imports System.Data.OleDb
Namespace Packaging
Public Class link
Public linkId As Integer
Public linkUrl As String
Public linkText As String
Public linkCat As Integer
Public linkRate As Integer
End Class
Public Class linkDB
Public Function GetLinks() As DataView
Dim DV As DataView=New DataView
Dim DT As DataTable=New DataTable("My")
DT.Columns.Add("linkId", Type.GetType("System.Int32"))
DT.Columns.Add("linkUrl", Type.GetType("System.String"))
DT.Columns.Add("linkCat", Type.GetType("System.Int32"))
DT.Columns.Add("linkText", Type.GetType("System.String"))
DT.Columns.Add("linkRate", Type.GetType("System.Int32"))
Dim j As Integer
Dim DR As DataRow
For j=0 To 3
GetALink(j+1,DT)
Next
DV.Table=DT
Return DV
End Function
Private Sub GetALink(ByVal Cat As Integer, ByRef DT As DataTable)
Dim DR As DataRow
Dim MySQL As String="SELECT * FROM [link] WHERE linkCat="
MySQL &= Cat
Dim MyDB As SQLDB=New SQLDB()
MyDB.strSQL=MySQL
Dim MyDS As DataSet=MyDB.SelectFromDB()
Dim MyDV As DataView=MyDS.Tables("My").DefaultView
If MyDV.Table.Rows.Count>0 Then
Dim w As Integer=0
Dim Rates() As Double
ReDim Rates(MyDV.Table.Rows.Count)
Dim Total As Double=0.0
Dim j As Integer
For j=0 To MyDV.Table.Rows.Count-1
Total += MyDV.Table.Rows(j)("linkRate")
Next
For j=0 To MyDV.Table.Rows.Count-1
Rates(j)=MyDV.Table.Rows(j)("linkRate")/Total
Next
For j=1 To MyDV.Table.Rows.Count-1
Rates(j)=Rates(j-1)+Rates(j)
Next
Dim nRandom As Random = New Random(DateTime.Now.Millisecond)
Dim r As Double=nRandom.NextDouble()
For j=0 To MyDV.Table.Rows.Count-1
If j=0 Then
If r<Rates(0) Then
w=j
Exit For
End If
ElseIf j=MyDV.Table.Rows.Count-1
If r>=Rates(j-1)
w=j
Exit for
End If
Else
If r>=Rates(j-1) And r<Rates(j) Then
w=j
Exit For
End If
End If
Next
DR=DT.NewRow()
DR("linkId")=MyDV.Table.Rows(w)("linkId")
DR("linkUrl")=MyDV.Table.Rows(w)("linkUrl")
DR("linkCat")=MyDV.Table.Rows(w)("linkCat")
DR("linkText")=MyDV.Table.Rows(w)("linkText")
DR("linkRate")=MyDV.Table.Rows(w)("linkRate")
DT.Rows.Add(DR)
Else
DR=DT.NewRow()
DR("linkId")=0
DR("linkUrl")=""
DR("linkCat")=Cat
DR("linkText")=""
DR("linkRate")=1
DT.Rows.Add(DR)
End If
End Sub
Public Function GetAllLinks() As DataView
Dim MySQL As String
MySQL="SELECT * FROM [link]"
Dim MyDB As SQLDB=New SQLDB()
MyDB.strSQL=MySQL
Dim MyDS As DataSet=MyDB.SelectFromDB()
Dim MyDV As DataView=MyDS.Tables("My").DefaultView
Return MyDV
End Function
Private Sub Change4SQL(ByRef MyLink As Link)
Dim MyFilter As StringFilter=New StringFilter()
MyFilter.FilterDegree=0
MyLink.LinkUrl=MyFilter.Change4Saving(MyLink.LinkUrl)
End Sub
Public Sub AddLink(ByVal MyLink As Link)
Change4SQL(MyLink)
Dim MySQL As String="INSERT INTO [link] "
MySQL &= "(linkUrl, linkText, linkCat, linkRate) VALUES ('"
MySQL &= MyLink.linkUrl & "', '"
MySQL &= MyLink.linkText & "', "
MySQL &= MyLink.linkCat & ", "
MySQL &= MyLink.linkRate & ")"
Dim MyDB As SQLDB=New SQLDB()
MyDB.strSQL=MySQL
MyDB.ExecuteSQL()
End Sub
Public Sub DeleteLink(ByVal Id As Integer)
Dim MySQL As String="DELETE FROM [link] WHERE linkId="
MySQL &= Id
MySQL &= " "
Dim MyDB As SQLDB=New SQLDB()
MyDB.strSQL=MySQL
MyDB.ExecuteSQL()
End Sub
Public Sub ChangeLink(ByVal MyLink As Link)
Change4SQL(MyLink)
Dim MySQL As String="UPDATE [link] SET "
MySQL &= "linkUrl='" & MyLink.LinkUrl & "', "
MySQL &= "linkText='" & MyLink.LinkText & "', "
MySQL &= "linkCat=" & MyLink.LinkCat & ", "
MySQL &= "linkRate=" & MyLink.LinkRate
MySQL &= " WHERE linkId=" & MyLink.LinkId
Dim MyDB As SQLDB=New SQLDB()
MyDB.strSQL=MySQL
MyDB.ExecuteSQL()
End Sub
End Class
End Namespace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -