📄 databusiness.vb
字号:
Imports System
Imports System.Data
Imports System.Configuration '因为用到了ConfigurationSettings类
Imports System.DateTime
Imports System.Web
Imports Microsoft.VisualBasic
Public Class DataBusiness 'DataBusiness是自己定义的类的名称
'该函数用来发表新文章
Public Function InsertNewBBS(ByVal intForumId As Integer, ByVal strTitle As String, ByVal strBody As String, ByVal strUserId As String, ByVal strEmail As String)
'下面定义一个错误对象,以便捕获错误。
Dim Exp As Exception
Try
'下面设置有关变量值
Dim intLayer, intChilds, intHits, intSetTop, intFatherId As Integer
Dim strIP, strLastUserId As String
Dim dtmSubmitDate, dtmLastSubmitDate As Date
intLayer = 1
intChilds = 0
intHits = 0
intSetTop = 0
intFatherId = 0 '父Id设为0
strIP = HttpContext.Current.Request.ServerVariables("REMOTE_ADDR")
dtmSubmitDate = Now()
strLastUserId = strUserId '发布新文章时最后更新人同发言人
dtmLastSubmitDate = dtmSubmitDate '最后更新时间同发言时间
'下面建立DataBBSes对象,然后调用方法添加数据
Dim dbss As New DataBBSes
dbss.InsertBBS(intForumId, strTitle, strBody, intLayer, intFatherId, intChilds, intHits, strUserId, strEmail, strIP, dtmSubmitDate, intSetTop, strUserId, dtmLastSubmitDate)
'下面需要添加该用户的发表文章数目
Dim du As New DataUser(strUserId)
du.AddArticle()
'下面需要增加该栏目的文章数目
Dim df As New DataForum(intForumId)
df.AddForumCount(1)
Return (True)
Catch Exp
'如果发生错误
Return (False)
End Try
End Function
'该函数用来发表回复文章
Public Function InsertReBBS(ByVal intBBSId As Integer, ByVal intForumId As Integer, ByVal strTitle As String, ByVal strBody As String, ByVal strUserId As String, ByVal strEmail As String)
'下面定义一个错误对象,以便捕获错误。
Dim Exp As Exception
Try
'下面设置有关变量值
Dim intLayer, intChilds, intHits, intSetTop, intFatherId As Integer
Dim strIP, strLastUserId As String
Dim dtmSubmitDate, dtmLastSubmitDate As Date
intLayer = 2
intChilds = 0
intHits = 0
intSetTop = 0
intFatherId = intBBSId '设置父Id
strIP = HttpContext.Current.Request.ServerVariables("REMOTE_ADDR")
dtmSubmitDate = Now()
'下面添加本文章的最后更新人和更新时间,因为这是第2层文章,实际上没有太大意义
strLastUserId = strUserId '发布新文章时最后更新人同发言人
dtmLastSubmitDate = dtmSubmitDate '最后更新时间同发言时间
'下面建立DataBBSes对象,然后调用方法添加数据
Dim dbss As New DataBBSes
dbss.InsertBBS(intForumId, strTitle, strBody, intLayer, intFatherId, intChilds, intHits, strUserId, strEmail, strIP, dtmSubmitDate, intSetTop, strLastUserId, dtmLastSubmitDate)
'下面更新父文章的最后更新人和更新时间
Dim db As New DataBBS(intFatherId)
db.UpdateLast(strUserId, dtmLastSubmitDate)
'下面更新父文章的回复数
db.AddChilds()
'下面需要添加该用户的回复文章数目
Dim du As New DataUser(strUserId)
du.AddReArticle()
'下面需要增加该栏目的文章数目
Dim df As New DataForum(intForumId)
df.AddForumCount(1)
Return (True)
Catch Exp
'如果发生错误
Return (False)
End Try
End Function
'该过程用来删除文章
Public Function DeleteBBS(ByVal intBBSId As Integer) As Boolean
'下面定义一个错误对象,以便捕获错误。
Dim Exp As Exception
Try
'下面首先根据BBSId返回ForumId
Dim db As New DataBBS(intBBSId)
Dim intForumId As Integer = db.ForumId
'下面建立DataBBSes对象,然后调用方法删除数据
Dim dbss As New DataBBSes
Dim intDel As Integer = dbss.DeleteBBS(intBBSId)
'下面需要改变栏目的文章数
Dim df As New DataForum(intForumId)
df.AddForumCount(-intDel) '减去相应数目
Return (True)
Catch exp
Return (False)
End Try
End Function
'下面查询记录,返回所有第1层的文章返回符合条件的DataView对象
Public Function GetBBS(ByVal intForumId As Integer, ByVal strKeyword As String, ByVal strKeyField As String, ByVal strSortField As String) As DataView
'下面返回DataView对象
Dim dbss As New DataBBSes
Dim dv As DataView = dbss.GetBBS(1) '返回第1层的记录
'下面根据查找关键词设置筛选条件
Dim strFilter As String
strFilter = "ForumId=" & intForumId
If strKeyword <> "" And strKeyword <> "全部" Then
Dim arryKeyword() As String
Dim I As Integer
arryKeyword = Split(strKeyword, " ") '按空格拆分多个关键词
'根据不同的字段进行不同的搜索方式。(不过实际上如果按UserId和BBSId时,人们一般不会输入多个关键词的)
If strKeyField = "Title" Or strKeyField = "Body" Then
For I = 0 To arryKeyword.Length - 1
strFilter &= " And " & strKeyField & " Like '%" & arryKeyword(I) & "%'" '注意And前留一个空格
Next
ElseIf strKeyField = "UserId" Then
For I = 0 To arryKeyword.Length - 1
strFilter &= " And " & strKeyField & " = '" & arryKeyword(I) & "'" '注意And前留一个空格
Next
ElseIf strKeyField = "BBSId" Then
For I = 0 To arryKeyword.Length - 1
strFilter &= " And " & strKeyField & " = " & arryKeyword(I) '注意And前留一个空格
Next
End If
End If
dv.RowFilter = strFilter '设置筛选条件
'下面根据排序字段设置排序效果,首先按置顶与否排列,然后按所选字段排列
dv.Sort = "SetTop Desc" '首先按置顶与否排列
If strSortField <> "" Then
dv.Sort &= "," & strSortField & " Desc" '按所选字段排列
End If
'最后返回检索、排序后的DataView
Return (dv)
End Function
'下面返回所有1、2层的记录,注意这个函数名称和上面的一样,但是参数不一样。
Public Function GetBBS() As DataView
Dim dbss As New DataBBSes
Dim dv As DataView = dbss.GetBBS(2) '返回2层数据
dv.Sort = "SetTop Desc,SubmitDate Desc" '按置顶和时间排列
Return (dv)
End Function
'下面返回某一个记录及其所有子记录
Public Function GetChilds(ByVal intBBSId As Integer)
Dim db As New DataBBS(intBBSId)
'该函数只有在打开particular.aspx时才会执行,所以在其中给该记录点击数加1
db.AddHits()
'下面返回DataView对象
Dim dv As DataView = db.GetChilds()
Return (dv)
End Function
'该过程用来置顶或取消置顶
Public Sub AddSetTop(ByVal intBBSId As Integer)
Dim db As New DataBBS(intBBSId)
If db.SetTop = 1 Then
Call db.CancelSetTop() '原来置顶,取消置顶
Else
Call db.AddSetTop() '原来非置顶,现在置顶
End If
End Sub
'该函数返回所有栏目
Public Function GetForum() As DataView
Dim dfs As New DataForums
Dim dv As DataView = dfs.GetForum()
dv.Sort = "ForumId"
Return (dv)
End Function
'删除栏目
Public Sub DeleteForum(ByVal intForumId As Integer)
Dim dfs As New DataForums
Call dfs.DeleteForum(intForumId)
End Sub
'更新栏目信息
Public Sub UpdateForum(ByVal intForumId As Integer, ByVal strForumName As String, ByVal strForumManager As String, ByVal strForumPicture As String)
Dim dfs As New DataForums
Call dfs.UpdateForum(intForumId, strForumName, strForumManager, strForumPicture)
End Sub
'添加栏目
Public Sub InsertForum(ByVal strForumName As String, ByVal strForumManager As String, ByVal strForumPicture As String)
Dim dfs As New DataForums
Call dfs.InsertForum(strForumName, strForumManager, strForumPicture)
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -