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

📄 databusiness.vb

📁 《ASP.NET C#程序设计案例教程》
💻 VB
字号:
Imports System
Imports System.Data
Imports System.Configuration										'因为用到了ConfigurationSettings类
Imports System.DateTime
Imports System.Web
Imports Microsoft.VisualBasic


NameSpace nsBBS														'nsBBS为自己定义的名称空间的名称

Public Class DataBusiness											'DataBusiness是自己定义的类的名称

	'该函数用来发表新文章
	Public Function InsertNewBBS(intForumId As Integer,strTitle As String,strBody As String,strUserId As String, 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(intBBSId As Integer,intForumId As Integer,strTitle As String,strBody As String,strUserId As String, 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(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(intForumId As integer,strKeyword As String,strKeyField As String,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(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(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(intForumId As Integer)
		Dim dfs As New DataForums()
		Call dfs.DeleteForum(intForumId)
	End Sub

	'更新栏目信息
	Public Sub UpdateForum(intForumId As Integer,strForumName as String,strForumManager As String,strForumPicture As String)
		Dim dfs As New DataForums()
		Call dfs.UpdateForum(intForumId,strForumName,strForumManager,strForumPicture)
	End Sub

	'添加栏目
	Public Sub InsertForum(strForumName as String,strForumManager As String,strForumPicture As String)
		Dim dfs As New DataForums()
		Call dfs.InsertForum(strForumName,strForumManager,strForumPicture)
	End Sub

End Class
End NameSpace

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -