⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 link.vb

📁 ASP_NET程序设计教程 源代码 冶金工业出版社 肖金秀 冯沃辉 陈少涌
💻 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 + -